Jonathan Wakely
e6e0842944
Small markup changes to PBDS docs
...
* doc/xml/manual/policy_data_structures.xml: Comment out stray
<remark> elements. Fix formatting of bibliography references.
From-SVN: r271132
2019-05-13 21:11:47 +01:00
Edward Smith-Rowland
abac7fbe4a
Document P0811R3 status in C++20 table
...
2019-05-13 Edward Smith-Rowland <3dw4rd@verizon.net>
* doc/xml/manual/status_cxx2020.xml: Document P0811R3 status.
From-SVN: r271122
2019-05-13 11:58:13 +01:00
Jonathan Wakely
544be2beb1
Remove Profile Mode, deprecated since GCC 7.1
...
The Profile Mode extension is not used by anybody, nor maintained by
anybody. The containers do not support the full API specified in recent
standards, and so enabling Profile Mode is not source compatible with
much modern C++ code. The heuristics that would check the profile
information and make useful suggestions never materialized, so it isn't
useful.
It should be removed.
Remove Profile Mode, deprecated since 7.1.0
* doc/Makefile.am: Remove XML file for profile mode docs.
* doc/Makefile.in: Regenerate.
* doc/xml/authors.xml: Remove authors of profile mode docs.
* doc/xml/manual/appendix_contributing.xml: Remove mention of profile
mode.
* doc/xml/manual/debug.xml: Likewise.
* doc/xml/manual/evolution.xml: Document removal of profile mode.
* doc/xml/manual/profile_mode.xml: Remove profile mode docs.
* doc/xml/manual/spine.xml: Remove profile mode author credit.
* doc/xml/manual/test.xml: Remove docs for dg-require-profile-mode
directive.
* doc/xml/manual/using.xml: Remove docs for profile mode headers and
macro.
* doc/html/*: Regenerate.
* include/Makefile.am: Remove profile mode headers.
* include/Makefile.in: Regenerate.
* include/bits/c++config (std::__profile): Remove namespace.
[_GLIBCXX_PROFILE]: Remove checks for macro.
* include/profile/array: Remove.
* include/profile/base.h: Remove.
* include/profile/bitset: Remove.
* include/profile/deque: Remove.
* include/profile/forward_list: Remove.
* include/profile/impl/profiler.h: Remove.
* include/profile/impl/profiler_algos.h: Remove.
* include/profile/impl/profiler_container_size.h: Remove.
* include/profile/impl/profiler_hash_func.h: Remove.
* include/profile/impl/profiler_hashtable_size.h: Remove.
* include/profile/impl/profiler_list_to_slist.h: Remove.
* include/profile/impl/profiler_list_to_vector.h: Remove.
* include/profile/impl/profiler_map_to_unordered_map.h: Remove.
* include/profile/impl/profiler_node.h: Remove.
* include/profile/impl/profiler_state.h: Remove.
* include/profile/impl/profiler_trace.h: Remove.
* include/profile/impl/profiler_vector_size.h: Remove.
* include/profile/impl/profiler_vector_to_list.h: Remove.
* include/profile/iterator_tracker.h: Remove.
* include/profile/list: Remove.
* include/profile/map: Remove.
* include/profile/map.h: Remove.
* include/profile/multimap.h: Remove.
* include/profile/multiset.h: Remove.
* include/profile/ordered_base.h: Remove.
* include/profile/set: Remove.
* include/profile/set.h: Remove.
* include/profile/unordered_base.h: Remove.
* include/profile/unordered_map: Remove.
* include/profile/unordered_set: Remove.
* include/profile/vector: Remove.
* scripts/run_doxygen: Do not process profile mode headers.
* testsuite/23_containers/array/element_access/60497.cc: Don't use
profile mode type.
* testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
Remove dg-skip-if for profile mode.
* testsuite/23_containers/forward_list/capacity/1.cc: Remove
preprocessor check for profile mode.
* testsuite/23_containers/list/capacity/29134.cc: Likewise.
* testsuite/23_containers/map/modifiers/extract.cc: Remove dg-skip-if
for profile mode.
* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
Likewise.
* testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
* testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
* testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
* testsuite/23_containers/set/modifiers/extract.cc: Likewise.
* testsuite/23_containers/unordered_map/modifiers/extract.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
Likewise.
* testsuite/23_containers/unordered_set/modifiers/extract.cc:
Likewise.
* testsuite/23_containers/vector/bool/capacity/29134.cc: Remove
preprocessor check for profile mode.
* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
Likewise.
* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
Remove dg-skip-if for profile mode.
* testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
* testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
* testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
* testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
* testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
* testsuite/Makefile.am: Remove profile_flags variable and
* testsuite/Makefile.am: Remove profile_flags variable and
check-profile target.
* testsuite/Makefile.in: Regenerate.
* testsuite/ext/profile/all.cc: Remove.
* testsuite/ext/profile/mutex_extensions_neg.cc: Remove.
* testsuite/ext/profile/profiler_algos.cc: Remove.
* testsuite/ext/profile/replace_new.cc: Remove.
* testsuite/ext/throw_allocator/deallocate_global.cc: Remove
preprocessor check for profile mode.
* testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
* testsuite/lib/libstdc++.exp (check_v3_target_profile_mode): Remove.
(check_v3_target_normal_mode): Do not check for profile mode macro.
* testsuite/libstdc++-prettyprinters/80276.cc: Remove dg-skip-if for
profile mode.
* testsuite/libstdc++-prettyprinters/compat.cc: Likewise.
* testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
* testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
* testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
* testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
* testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
* testsuite/libstdc++-prettyprinters/whatis2.cc: Likewise.
From-SVN: r271120
2019-05-13 11:50:21 +01:00
Jonathan Wakely
0d09ca2550
Remove array_allocator extension, deprecated since 4.9.0
...
This type is not a conforming allocator, because it cannot be reliably
rebound to allocate for a different type. The result of the rebind
transformation still uses the same underlying std::tr1::array<T, 1>
array, which may not be correctly aligned or even have elements the
right size for the value_type of the rebound allocator.
It has been deprecated for several years and should now be removed.
* doc/xml/manual/allocator.xml: Remove documentation for
array_allocator.
* doc/xml/manual/evolution.xml: Document array_allocator removal.
* doc/xml/manual/using.xml: Remove header from documentation.
* include/Makefile.am: Remove <ext/array_allocator.h> header.
* include/Makefile.in: Regenerate.
* include/ext/array_allocator.h: Remove.
* include/precompiled/extc++.h: Do not include removed header.
* testsuite/ext/array_allocator/1.cc: Remove.
* testsuite/ext/array_allocator/2.cc: Remove.
* testsuite/ext/array_allocator/26875.cc: Remove.
* testsuite/ext/array_allocator/3.cc: Remove.
* testsuite/ext/array_allocator/check_deallocate_null.cc: Remove.
* testsuite/ext/array_allocator/check_delete.cc: Remove.
* testsuite/ext/array_allocator/check_new.cc: Remove.
* testsuite/ext/array_allocator/variadic_construct.cc: Remove.
* testsuite/ext/headers.cc: Do not include removed header.
From-SVN: r271119
2019-05-13 11:49:58 +01:00
Jonathan Wakely
f61a12b395
PR libstdc++/89102 implement new common_type rules (P0435R1, P0548R1)
...
This change ensures that std::common_type<> is a complete type (LWG
2408), and that std::common_type<T>, std::common_type<cv T1, cv T2>, and
std::common_type<T1, T2, R...> will use program-defined specializations
for std::common_type<T1, T2> (LWG 2465).
The implementation of common_type<T1, T2, R...> is changed to use
void_t, and the specializations for duration and time_point are modified
to also use void_t instead of depending on implementation details of
common_type.
PR libstdc++/89102
* doc/xml/manual/intro.xml: Document DR 2408 and 2465 changes.
* include/std/chrono (__duration_common_type_wrapper): Replace with ...
(__duration_common_type): New helper.
(common_type<chrono::duration<R1, P2>, chrono::duration<R2, P2>>): Use
__duration_common_type.
(__timepoint_common_type_wrapper): Replace with ...
(__timepoint_common_type): New helper.
(common_type<chrono::time_point<C, D2>, chrono::time_point<C, D2>>):
Use __time_point_common_type.
* include/std/type_traits (common_type<>): Define, as per LWG 2408.
(__common_type_impl): If either argument is transformed by decay,
use the common_type of the decayed types.
(__common_type_impl<_Tp, _Up, _Tp, _Up>): If the types are already
decayed, use __do_common_type_impl to get the common_type.
(common_type<_Tp>): Use common_type<_Tp, _Tp>.
(__do_member_type_wrapper, __member_type_wrapper)
(__expanded_common_type_wrapper): Remove.
(__common_type_pack, __common_type_fold): New helpers.
(common_type<_Tp, _Up, _Vp...>): Use new helpers instead of
__member_type_wrapper and __expanded_common_type_wrapper.
* testsuite/20_util/common_type/requirements/explicit_instantiation.cc:
Test zero-length template argument list.
* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
Test single argument cases and argument types that should decay.
* testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
Adjust expected error.
* testsuite/20_util/duration/literals/range_neg.cc: Use zero for
dg-error lineno.
* 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.
From-SVN: r270987
2019-05-07 23:46:39 +01:00
Jonathan Wakely
73e828becf
Fix incorrect DR numbers in libstdc++ manual
...
* doc/xml/manual/intro.xml: Fix DR 2537 and DR 2566 confusion.
From-SVN: r270954
2019-05-07 16:30:52 +01:00
Jonathan Wakely
ee2f721c2f
PR libstdc++/90239 use uses_allocator_construction_args in <scoped_allocator>
...
PR libstdc++/90239
* doc/xml/manual/status_cxx2020.xml: Amend P0591R4 status.
* include/std/scoped_allocator [__cplusplus > 201703L]
(scoped_allocator_adaptor::construct): Define in terms of
uses_allocator_construction_args, as per P0591R4.
* testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc: New test.
* testsuite/util/testsuite_allocator.h: Remove name of unused
parameter.
From-SVN: r270588
2019-04-25 23:43:15 +01:00
Jonathan Wakely
7c3e085e44
Update C++17 library status tables
...
* doc/xml/manual/status_cxx2017.xml: Document P0024R2 status.
* doc/html/*: Regenerate.
From-SVN: r270559
2019-04-24 23:16:45 +01:00
Thomas Rodgers
1bacd25b0c
Document PSTL linker flags
...
* doc/xml/manual/using.xml: Add PSTL linker flags to table
3.1.
From-SVN: r270521
2019-04-23 21:03:24 +00:00
Jonathan Wakely
51d3c11a7c
Update documentation regarding bogus memory leaks in libstdc++
...
* doc/xml/faq.xml: Add information about emergency EH pool.
* doc/xml/manual/debug.xml: Update list of memory debugging tools.
Move outdated information on mt_allocator to a separate section.
* doc/xml/manual/evolution.xml: Clarify that GLIBCXX_FORCE_NEW
doesn't affect the default allocator.
From-SVN: r270264
2019-04-10 20:24:04 +01:00
Jonathan Wakely
199b20e3cb
Implement std::visit<R> for C++2a (P0655R1)
...
* doc/xml/manual/status_cxx2020.xml: Update status.
* include/std/variant (visit<R>): Define for C++2a (P0655R1).
* testsuite/20_util/variant/visit_r.cc: New test.
From-SVN: r270176
2019-04-05 19:06:02 +01:00
Jonathan Wakely
fb5550a068
Remove broken links from libstdc++ manual to Doxygen pages
...
The Doxygen docs do not have stable URLs, so linking to specific pages
doesn't work well.
* doc/xml/manual/backwards_compatibility.xml: Remove link to
Doxygen-generated pages with unstable URL.
* doc/xml/manual/concurrency_extensions.xml: Likewise.
* doc/xml/manual/extensions.xml: Likewise.
* doc/xml/manual/parallel_mode.xml: Likewise.
* doc/xml/manual/support.xml: Likewise.
From-SVN: r269881
2019-03-22 20:57:35 +00:00
Jonathan Wakely
cad3fc8c59
Update libstdc++ API Evolution documentation
...
* doc/xml/manual/allocator.xml: Link to table documenting evolution
of extension allocators.
* doc/xml/manual/evolution.xml: Use angle brackets for header names.
Document new headers in 7.2, 8.1 and 9.1 releases.
* doc/xml/manual/using.xml: Adjust link target for new_allocator.
* doc/html/*: Regenerate.
From-SVN: r269794
2019-03-19 09:38:41 +00:00
Jonathan Wakely
c7904d9e08
Fix text of hyperlink in manual
...
* doc/xml/manual/using.xml: Use link element instead of xref.
* doc/html/*: Regenerate.
From-SVN: r269494
2019-03-08 13:56:53 +00:00
Jonathan Wakely
5178f5c255
Update C++20 status table in libstdc++ manual
...
* doc/xml/manual/status_cxx2020.xml: Update C++20 status.
* doc/html/*: Regenerate.
From-SVN: r269456
2019-03-07 14:25:05 +00:00
Jonathan Wakely
323694e9a2
Update libstdc++ documentation for C++2a implementation status
...
* doc/xml/manual/status_cxx2020.xml: Update P0887R1 status.
* doc/html/*: Regenerate.
From-SVN: r268885
2019-02-14 17:46:26 +00:00
Jonathan Wakely
bb2a18a3a8
Update libstdc++ documentation for implementation status
...
* doc/xml/manual/status_cxx2017.xml: Add P0063R3 to status table.
* doc/html/*: Regenerate.
From-SVN: r268883
2019-02-14 15:12:57 +00:00
Jonathan Wakely
b7dbc6723a
DR 2586 fix value category in uses-allocator checks
...
Because uses-allocator construction is invariably done with a const
lvalue the __uses_alloc helper should use a const lvalue for the
is_constructible checks. Otherwise, it can detect that the type can be
constructed from an rvalue, and then an error happens when a const
lvalue is passed to the constructor instead.
Prior to LWG DR 2586 scoped_allocator_adaptor incorrectly used an rvalue
type in the is_constructible check and then used a non-const lvalue for
the actual construction. The other components using uses-allocator
construction (tuple and polymorphic_allocator) have always done so with
a const lvalue allocator, although the use of __use_alloc in our
implementation meant they behaved the same as scoped_allocator_adaptor
and incorrectly used rvalues for the is_constructible checks.
In C++20 the P0591R4 changes mean that all uses-allocator construction
is defined in terms of the new uses_allocator_construction_args
functions, which always use a const lvalue allocator.
The changes in this patch ensure that the __use_alloc helper correctly
matches the requirements in the standard, consistently using a const
lvalue allocator for the is_constructible checks and the actual
constructor arguments.
* doc/xml/manual/intro.xml: Document LWG 2586 status.
* include/bits/uses_allocator.h (__uses_alloc): Use const lvalue
allocator type in is_constructible checks.
* testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
* testsuite/20_util/scoped_allocator/dr2586.cc: New test.
* testsuite/20_util/tuple/cons/allocators.cc: Add test using
problematic type from LWG 2586 discussion.
* testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error.
* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
From-SVN: r268882
2019-02-14 15:08:33 +00:00
Jonathan Wakely
1f4dcbf7cd
LWG 2537 fix priority_queue constructors to establish invariant
...
This change is safe to make now (in stage 4), because the constructors
are currently incorrect and unusable (unless the supplied container
already contains a heap, in which case the new make_heap calls are
redundant but harmless).
* doc/xml/manual/intro.xml: Document LWG 2537 status.
* include/bits/stl_queue.h
(priority_queue(const Compare&, const Container&, const Alloc&))
(priority_queue(const Compare&, Container&&, const Alloc&)): Call
make_heap.
* testsuite/23_containers/priority_queue/dr2537.cc: New test.
From-SVN: r268878
2019-02-14 14:10:19 +00:00
Jonathan Wakely
1138a19dfe
Enforce LWG DR 2566 requirement for container adaptors
...
Although there is no good use for stack<int, deque<double>> or similar
types with a mismatched value_type, it's possible somebody is doing that
and getting away with it currently. This patch only enforces the new
requirement for C++17 and later. During stage 1 we should consider
enforcing it for C++11 and C++14.
* doc/xml/manual/intro.xml: Document LWG 2566 status.
* include/bits/stl_queue.h (queue, priority_queue): Add static
assertions to enforce LWG 2566 requirement on value_type.
* include/bits/stl_stack.h (stack): Likewise.
From-SVN: r268877
2019-02-14 14:10:12 +00:00
Jonathan Wakely
8936f5310a
Document LWG 2735 status and add test
...
This DR was already resolved for GCC 7.1 by the implementation of DR
2192, but we didn't have an explicit test for the behaviour that 2735
guarantees.
* doc/xml/manual/intro.xml: Document LWG 2735 status.
* include/bits/std_abs.h: Add comment about LWG 2735.
* testsuite/26_numerics/headers/cstdlib/dr2735.cc: New test.
From-SVN: r268867
2019-02-14 09:07:09 +00:00
Ulrich Drepper
7341a03ab8
* doc/xml/manual/status_cxx2020.xml: Update P0600 entry.
...
From-SVN: r268398
2019-01-30 16:23:44 +00:00
Jonathan Wakely
56a9eaf9ab
Fix missing or incorrect feature test macros
...
* doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2
status.
* include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms):
Define.
* include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3
changes are supported.
* include/std/optional (__cpp_lib_optional): Likewise.
* include/std/variant (__cpp_lib_variant): Likewise.
* include/std/version [!__STRICT_ANSI__]
(__cpp_lib_uncaught_exceptions): Define as long integer.
[__cplusplus >= 201703L] (__cpp_lib_any)
(__cpp_lib_raw_memory_algorithms, __cpp_lib_uncaught_exceptions)
(__cpp_lib_variant): Define for C++17.
[__cplusplus >= 201703L] (__cpp_lib_optional): Update value and define
as long integer.
* libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long
integer.
From-SVN: r267936
2019-01-15 12:01:12 +00:00
Jonathan Wakely
04fdd1fdec
* doc/xml/manual/status_cxx2020.xml: Update P1123R0 status.
...
From-SVN: r267935
2019-01-15 10:34:18 +00:00
Jonathan Wakely
66dc59e24f
Document C++20 library status
...
* doc/xml/manual/intro.xml: Include new section.
* doc/xml/manual/status_cxx2017.xml: Document more
implementation-defined properties of the library.
* doc/xml/manual/status_cxx2020.xml: Document C++2a status.
* doc/html/*: Regenerate.
From-SVN: r267867
2019-01-11 23:41:15 +00:00
Jonathan Wakely
f0f1121b40
Update documentation for C++17 filesystem library
...
* doc/xml/manual/spine.xml: Update copyright years.
* doc/xml/manual/status_cxx2017.xml: Adjust note about -lstdc++fs.
* doc/xml/manual/using.xml: Remove requirement to link with -lstdc++fs
for C++17 filesystem library.
* doc/html/*: Regenerate.
From-SVN: r267648
2019-01-07 12:46:40 +00:00
Jonathan Wakely
f39365f3ed
Fix grammar in libstdc++ ABI history documentation
...
* doc/xml/manual/abi.xml: Add missing word.
From-SVN: r267285
2018-12-19 20:16:57 +00:00
Gerald Pfeifer
72cfde41e5
documentation_hacking.xml: Update reference to epubcheck.
...
* doc/xml/manual/documentation_hacking.xml: Update reference
to epubcheck.
From-SVN: r266970
2018-12-11 04:00:00 +00:00
Jonathan Wakely
bd6ccc290a
Apply resolution for LWG DR 3096
...
Add fix for "path::lexically_relative is confused by trailing slashes".
* 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.
From-SVN: r266566
2018-11-28 15:36:56 +00:00
Jonathan Wakely
5916922e34
Update C++17 library status docs
...
* doc/xml/manual/status_cxx2017.xml: Update C++17 status.
* doc/html/*: Regenerate.
From-SVN: r266559
2018-11-28 13:49:47 +00:00
Jonathan Wakely
da29d2a36e
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-27 23:25:56 +00:00
Gerald Pfeifer
3553df866a
allocator.xml: Adjust link to "Reconsidering Custom Memory Allocation".
...
* doc/xml/manual/allocator.xml: Adjust link to "Reconsidering
Custom Memory Allocation".
From-SVN: r264761
2018-10-01 15:17:15 +00:00
Gerald Pfeifer
f1525dd4b4
messages.xml: Switch link to www.oracle.com to https.
...
* doc/xml/manual/messages.xml: Switch link to www.oracle.com
to https.
From-SVN: r264723
2018-09-30 11:41:31 +00:00
Gerald Pfeifer
8b3f158946
policy_data_structures_biblio.xml: Update link to Microsoft Component Model Object Technologies.
...
* doc/xml/manual/policy_data_structures_biblio.xml: Update
link to Microsoft Component Model Object Technologies.
From-SVN: r264722
2018-09-30 10:53:14 +00:00
Gerald Pfeifer
44eb8fa73b
codecvt.xml: Move link to "UTF-8 and Unicode FAQ" to https.
...
* doc/xml/manual/codecvt.xml: Move link to "UTF-8 and Unicode FAQ"
to https.
From-SVN: r264547
2018-09-24 22:01:49 +00:00
Gerald Pfeifer
54b7d98ec4
policy_data_structures_biblio.xml: Update link to "Priority Queues and the STL".
...
* doc/xml/manual/policy_data_structures_biblio.xml: Update link
to "Priority Queues and the STL".
From-SVN: r264527
2018-09-24 11:14:36 +00:00
Gerald Pfeifer
839837b036
using_exceptions.xml: Move boost.orgs link to https.
...
* doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
https.
From-SVN: r264515
2018-09-23 14:57:25 +00:00
Gerald Pfeifer
d1f43ba348
profile_mode.xml: Update three ieeexplore.ieee.org references.
...
* doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
references.
From-SVN: r264031
2018-09-01 21:27:14 +00:00
Jonathan Wakely
7c1dcf5012
PR libstdc++/77854 document size_type for containers
...
PR libstdc++/77854
* doc/xml/manual/status_cxx1998.xml: Document size_type and
difference_type for containers.
* doc/html/*: Regenerate.
From-SVN: r263767
2018-08-22 13:11:17 +01:00
Jonathan Wakely
484e936e88
PR libstdc++/85343 overload __throw_ios_failure to take errno
...
[ios::failure] p2: "When throwing ios_base::failure exceptions,
implementations should provide values of ec that identify the specific
reason for the failure."
This adds a new overload of __throw_ios_failure that can be passed
errno, to store error_code(errno, system_category()) in the exception
object.
PR libstdc++/85343
* acinclude.m4 (libtool_VERSION): Bump version.
* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add new symbol version.
Export new symbol.
* configure: Regenerate.
* 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.
* testsuite/util/testsuite_abi.cc: Update known and latest versions.
From-SVN: r263535
2018-08-14 13:09:57 +01:00
Jonathan Wakely
b66e5a95c0
PR libstdc++/68210 adjust operator new and delete for LWG 206
...
Ensure that nothrow versions of new and delete call the ordinary
versions of new or delete, instead of calling malloc or free directly.
These files are all compiled with -std=gnu++14 so can use noexcept and
nullptr to make the code more readable.
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.
From-SVN: r263478
2018-08-10 21:20:27 +01:00
Jonathan Wakely
2e9dae0456
Fix Docbook markup for table entry
...
* doc/xml/manual/using.xml: Fix markup for empty table entry.
* doc/html/*: Regenerate.
From-SVN: r263401
2018-08-08 14:37:24 +01:00
Jonathan Wakely
c0d57e63bb
Add missing <experimental/numeric> header to docs
...
* doc/xml/manual/using.xml: Add missing header to table and fix typo.
* doc/html/*: Regenerate.
From-SVN: r263398
2018-08-08 14:29:25 +01:00
Jonathan Wakely
3e64a626d7
Improve libstdc++ docs w.r.t newer C++ standards
...
Instead of repeating all the old headers for every new standard I've
changed the docs to only list the new headers for each standard.
* 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.
From-SVN: r263163
2018-07-31 16:02:32 +01:00
Jonathan Wakely
b03f3a94e6
* doc/xml/manual/status_cxx2017.xml: Document N4531 status.
...
From-SVN: r262025
2018-06-25 17:42:28 +01:00
Jonathan Wakely
5d84e6c53e
LWG 3076 basic_string CTAD ambiguity
...
When deduction guides are supported by the compiler (i.e. for C++17 and
later) replace two basic_string constructors by constrained function
templates as required by LWG 3075. In order to ensure that the pre-C++17
non-template constructors are still exported from the shared library
define a macro in src/c++11/string-inst.cc to force the non-template
declarations (this isn't strictly needed yet, because the string
instantiations are compiled with -std=gnu++11, but that is likely to
change).
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.
From-SVN: r261670
2018-06-16 00:47:33 +01:00
Jonathan Wakely
7f93abd805
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.
From-SVN: r261632
2018-06-15 15:19:47 +01:00
Jonathan Wakely
db5ab3aa92
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.
From-SVN: r261610
2018-06-14 20:36:54 +01:00
Jonathan Wakely
0f8a1c150e
Document Dual ABI for std::ios_base::failure
...
* 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.
From-SVN: r260129
2018-05-10 20:13:42 +01:00
Jonathan Wakely
b83f5981c1
Document -lstdc++fs requirement for std::filesystem
...
* doc/xml/manual/using.xml (table.cmd_options): Document that the
C++17 Filesystem implementation also needs -lstdc++fs.
From-SVN: r260011
2018-05-07 20:17:16 +01:00
Jonathan Wakely
52556a878d
Update libstdc++ manual in preparation for GCC 8 release
...
* 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.
From-SVN: r259308
2018-04-11 01:21:35 +01:00
Jonathan Wakely
25949ee332
Update links to archived copy of SGI STL docs
...
* 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.
From-SVN: r259286
2018-04-10 16:49:26 +01:00
Gerald Pfeifer
8c00b6a4e8
api.xml: www.fsf.org has moved to https.
...
* 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.
From-SVN: r258637
2018-03-18 23:52:00 +00:00
Gerald Pfeifer
1de51fbc6f
documentation_hacking.xml: Adjust link to docbook.org.
...
* doc/xml/manual/documentation_hacking.xml: Adjust link to
docbook.org.
From-SVN: r258636
2018-03-18 23:38:23 +00:00
Jonathan Wakely
c41743d0c0
PR libstdc++/83538 fix std::match_results<T>::reference (LWG 2306)
...
PR libstdc++/83538
* doc/xml/manual/intro.xml: Document LWG 2306 change.
* include/bits/regex.h (match_results::reference): Change to
non-const reference.
* testsuite/28_regex/match_results/typedefs.cc: Check types are
correct.
From-SVN: r256012
2017-12-27 19:43:33 +00:00
Przemyslaw Wirkus
b99415b760
Fix invalid XML in libstdc++ manual
...
2017-11-21 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
* doc/xml/manual/using.xml (manual.intro.using.macros): Move
variablelist element at the end of its list.
From-SVN: r255023
2017-11-21 18:45:04 +00:00
Gerald Pfeifer
ba89e5d5a7
* doc/xml/manual/abi.xml: Move docs.oracle.com references to https.
...
From-SVN: r254426
2017-11-05 11:14:38 +00:00
Jonathan Wakely
5fdbeb16d7
Update C++17 library status documentation
...
* doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
information on feature-test macros.
* doc/html/*: Regenerate.
From-SVN: r254078
2017-10-25 15:06:12 +01:00
Jonathan Wakely
908d1d3aea
PR libstdc++/82644 document IS 29124 support
...
Also fix declarations of special functions in C++17, to import them into
the global namespace in <math.h>, and to prevent defining the
non-standard hypergeometric functions in strict mode.
PR libstdc++/82644
* doc/xml/manual/intro.xml: Include new section.
* doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
status.
* include/bits/specfun.h [__STRICT_ANSI__] (hyperg, hypergf, hypergl)
(conf_hyperg, conf_hypergf, conf_hypergl): Don't declare.
* include/c_compatibility/math.h: Import special functions into
global namespace for C++17.
* testsuite/26_numerics/headers/cmath/82644.cc: New test.
* testsuite/26_numerics/headers/cmath/functions_global_c++17.cc: New
test.
From-SVN: r254004
2017-10-23 12:10:28 +01:00
Jonathan Wakely
89b1e16136
Update references to C++17 in libstdc++ manual
...
* doc/xml/manual/status_cxx2017.xml: Update references to C++17
section numbers.
From-SVN: r253895
2017-10-19 14:57:02 +01:00
Jonathan Wakely
3b0dd4fea2
PR libstdc++/82522 overload map insert functions for rvalues (LWG 2354)
...
PR libstdc++/82522
* doc/xml/manual/intro.xml: Document LWG 2354 changes.
* include/bits/stl_map.h (map::insert(value_type&&))
(map::insert(const_iterator, value_type&&)): Add overload for rvalues.
* include/bits/stl_multimap.h (multimap::insert(value_type&&))
(multimap::insert(const_iterator, value_type&&)): Likewise.
* include/bits/unordered_map.h (unordered_map::insert(value_type&&))
(unordered_map::insert(const_iterator, value_type&&))
(unordered_multimap::insert(value_type&&))
(unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
* testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
* testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
test.
* testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
* testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
test.
From-SVN: r253725
2017-10-13 13:39:32 +01:00
Jonathan Wakely
ff7e6f066b
PR libstdc++/81835 fix broken URLs in libstdc++ docs
...
PR libstdc++/81835
* doc/xml/manual/extensions.xml: Replace unstable URL.
* doc/html/manual/ext_demangling.html: Regenerate.
* libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
From-SVN: r252066
2017-09-13 11:05:59 +01:00
Jonathan Wakely
c6888c6257
PR libstdc++/79433 no #error for including headers with wrong -std
...
PR libstdc++/79433
* doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
* doc/html/*: Regenerate.
* include/Makefile.am: Remove <bits/c++17_warning.h>.
* include/Makefile.in: Regenerate.
* include/bits/c++17_warning.h: Remove.
* include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
for pre-C++17 modes.
* include/std/any: Likewise.
(__cpp_lib_any): Define.
* include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
SD-6 draft.
* include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
draft.
* include/std/optional: Do not include <bits/c++17_warning.h>.
(__cpp_lib_optional): Define.
* include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
* include/std/string_view: Do not include <bits/c++17_warning.h>.
(__cpp_lib_string_view): Define.
* include/std/variant: Do not include <bits/c++17_warning.h>.
(__cpp_lib_variant): Define.
* testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
numbers.
* testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
numbers.
* testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
* testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
numbers.
* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
expected value of __cpp_lib_scoped_lock.
From-SVN: r252018
2017-09-12 15:02:59 +01:00
Gerald Pfeifer
630e912e68
allocator.xml: Adjust link for Hoard.
...
* doc/xml/manual/allocator.xml: Adjust link for Hoard.
* doc/html/manual/memory.html: Regenerate.
From-SVN: r251919
2017-09-09 06:51:49 +00:00
Jonathan Wakely
8c7331c556
Add AddressSanitizer annotations to std::vector
...
* config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
(_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
* config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
(_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
* doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
* include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
(_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
(_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
(_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
(_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
Define annotation helper types and macros.
(vector::~vector, vector::push_back, vector::pop_back)
(vector::_M_erase_at_end): Add annotations.
* include/bits/vector.tcc (vector::reserve, vector::emplace_back)
(vector::insert, vector::_M_erase, vector::operator=)
(vector::_M_fill_assign, vector::_M_assign_aux)
(vector::_M_insert_rval, vector::_M_emplace_aux)
(vector::_M_insert_aux, vector::_M_realloc_insert)
(vector::_M_fill_insert, vector::_M_default_append)
(vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
From-SVN: r250430
2017-07-21 17:05:10 +01:00
Jonathan Wakely
6a28a7531b
Improvements to the libstdc++ FAQ and manual
...
* doc/xml/faq.xml: Update several old entries. Improve
cross-references.
* doc/xml/manual/intro.xml: Add anchors to each DR.
* doc/html/*: Regenerate.
From-SVN: r250125
2017-07-11 12:11:33 +01:00
Jonathan Wakely
4317778a9b
PR libstdc++/81092 add std::wstring symbols and bump library version
...
PR libstdc++/81092
* acinclude.m4: Bump libtool_VERSION.
* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
* config/abi/pre/gnu.ver: Add wstring constructor symbols to
GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
to new GLIBCXX_3.4.25 version.
* doc/xml/manual/abi.xml: Document new versions.
* doc/html/*: Regenerate.
* testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
constructors to ensure required symbols are exported.
* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
* testsuite/util/testsuite_abi.cc: Add new version.
From-SVN: r249246
2017-06-16 12:54:59 +01:00
Jonathan Wakely
cdd17d6e99
Fix libstdc++ testsuite failures with -D_GLIBCXX_USE_CXX11_ABI=0
...
* doc/xml/manual/test.xml: Correct instructions on running tests.
* testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
Likewise.
* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
* 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.
From-SVN: r249206
2017-06-14 20:38:30 +01:00
Pedro Alves
b51483f48f
Finish implementing P0426R1 "Constexpr for std::char_traits" for C++17
...
As discussed in PR c++/80265 ("__builtin_{memcmp,memchr,strlen} are
not usable in constexpr functions"), use __builtin_constant_p to tell
whether we can defer to a constexpr algorithm.
I used __always_inline__ just to be thorough. It isn't really really
necessary as far as I could determine.
Changes like these:
if (__n == 0)
return 0;
- return wmemcmp(__s1, __s2, __n);
+ else
+ return wmemcmp(__s1, __s2, __n);
are necessary otherwise G++ complains that we're calling a
non-constexpr function, which looks like a a manifestation of PR67026
to me.
libstdc++-v3:
2017-06-12 Pedro Alves <palves@redhat.com>
* doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
char_traits status.
* doc/html/*: Regenerate.
* include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
not already defined.
(__cpp_lib_constexpr_char_traits): Uncomment.
(__constant_string_p, __constant_char_array_p): New.
(std::char_traits<char>, std::char_traits<wchar_t>): Add
_GLIBCXX17_CONSTEXPR on compare, length and find and use
__constant_string_p, __constant_char_array_p and
__builtin_constant_p to defer to __gnu_cxx::char_traits at compile
time.
* testsuite/21_strings/char_traits/requirements/
constexpr_functions_c++17.cc: Uncomment
__cpp_lib_constexpr_char_traits tests. Uncomment
test_compare<char>, test_length<char>, test_find<char>,
test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
static_assert tests.
From-SVN: r249137
2017-06-12 22:22:39 +00:00
Jonathan Wakely
53d01fd9e9
Support move-only deleters in std::shared_ptr (LWG 2802)
...
* doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
* include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
(LWG 2802).
* include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
(_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
* testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
From-SVN: r249061
2017-06-09 14:20:37 +01:00
Jonathan Wakely
4c19e432d6
PR libstdc++/80624 satisfy invariant for char_traits<char16_t>::eof()
...
PR libstdc++/80624
* doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
* include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
Transform eof value to U+FFFD.
* testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
* testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
* testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
From-SVN: r248843
2017-06-02 19:35:37 +01:00
Xi Ruoyao
78aa76df40
PR libstdc++/67578 Implement non-trivial std::random_device::entropy
...
2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/67578
* acinclude.m4: Bump libtool_VERSION.
* config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Add test for <linux/random.h>.
* doc/xml/manual/abi.xml: Document new library version.
* include/bits/random.h (random_device::entropy)
[_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
(random_device::_M_getentropy): Declare.
* src/c++11/random.cc (random_device::_M_getentropy): Define.
* testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
versions, and make it the latest version.
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r248374
2017-05-23 17:11:57 +01:00
Jonathan Wakely
8985968cc4
Fix typos in libstdc++ manual
...
* doc/xml/manual/policy_data_structures.xml: Fix typo.
* doc/xml/manual/test_policy_data_structures.xml: Likewise.
* doc/html/*: Regenerate.
From-SVN: r248189
2017-05-18 11:26:02 +01:00
Jonathan Wakely
8268fc6022
Update libstdc++ version info in manual
...
* doc/xml/manual/abi.xml: Document latest library versions.
* doc/xml/manual/build_hacking.xml: Document requirement to update
abi.xml when bumping library versions.
* doc/html/*: Regenerate.
From-SVN: r248186
2017-05-18 11:09:32 +01:00
Jonathan Wakely
2673bae9d2
Implement std::experimental::source_location (N4519)
...
* configure: Regenerate.
* doc/xml/manual/status_cxx2017.xml: Update status table.
* doc/html/*: Regenerate.
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/experimental/source_location: New header implementing N4519.
* testsuite/experimental/source_location/1.cc: New test.
From-SVN: r248110
2017-05-16 14:37:52 +01:00
Jonathan Wakely
5f54ae00d0
Add cross-reference for test permutations in libstdc++ manual
...
* doc/xml/manual/appendix_contributing.xml: Link to test docs and
note higher DejaGnu version requirement.
* doc/html/*: Regenerate.
From-SVN: r248092
2017-05-16 11:37:22 +01:00
Jonathan Wakely
ad2b8b37ec
Add cross-reference for BADNAMES in libstdc++ manual
...
* doc/xml/manual/appendix_contributing.xml: Link to the list of bad
identifiers.
* doc/html/*: Regenerate.
From-SVN: r248091
2017-05-16 10:46:21 +01:00
Jonathan Wakely
395ec8f30c
Fix ViewCVS URLs in libstdc++ manual
...
* doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
* doc/xml/manual/mt_allocator.xml: Likewise.
* doc/html/*: Regenerate.
From-SVN: r247911
2017-05-11 16:01:10 +01:00
Jonathan Wakely
6d430cbd12
Clarify mt_allocator documentation w.r.t deallocation
...
* doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
* doc/html/*: Regenerate.
From-SVN: r247742
2017-05-08 16:09:08 +01:00
Jonathan Wakely
db7ab54fbf
Rationalise ABI links in libstdc++ manual
...
* doc/xml/manual/abi.xml: Rephrase one of the references to the
Itanium C++ ABI.
* doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
* doc/html/*: Regenerate.
From-SVN: r247003
2017-04-19 17:49:21 +01:00
Gerald Pfeifer
5ee26fce81
faq.xml: Update reference link to C++ ABI for Itanium.
...
* doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
* doc/xml/manual/abi.xml. Ditto (thrice).
From-SVN: r246860
2017-04-11 22:36:40 +00:00
Jonathan Wakely
b0dfb235e8
Remove duplicated entry in C++17 library status table
...
* doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
* doc/html/*: Regenerate.
From-SVN: r246661
2017-04-03 19:58:32 +01:00
Jonathan Wakely
9d83c64b16
Update C++17 library status table in manual
...
* doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
* doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
directories for debug, parallel and profile headers.
* doc/html/*: Regenerate.
From-SVN: r246656
2017-04-03 18:16:01 +01:00
Jonathan Wakely
a138d52a9b
Add _GLIBCXX_RELEASE macro to "Using" section of manual
...
* doc/xml/manual/abi.xml: Add xml:id anchor.
* doc/xml/manual/using.xml (manual.intro.using.macros): Document
_GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
(concurrency.io.structure): Add markup.
* doc/html/*: Regenerate.
From-SVN: r246532
2017-03-28 13:43:06 +01:00
Jonathan Wakely
393ed575c4
Fix broken links in manual and remove outdated info
...
* doc/xml/faq.xml: Add link.
* doc/xml/manual/backwards_compatibility.xml: Remove outdated
information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
* doc/xml/manual/io.xml: Update broken link.
* doc/html/*: Regenerate.
From-SVN: r246425
2017-03-23 19:40:21 +00:00
Gerald Pfeifer
e76659d189
appendix_contributing.xml: Convert link to ansi.org to https.
...
* doc/xml/manual/appendix_contributing.xml: Convert link to
ansi.org to https.
Update link to the C++ standard at ansi.org.
* doc/xml/faq.xml: Remove information redundant with the above;
instead add a reference.
From-SVN: r246259
2017-03-18 18:39:54 +00:00
Jonathan Wakely
e0472d7e8c
Define std::byte for C++17 (P0298R3)
...
* doc/xml/manual/status_cxx2017.xml: Document std::byte support.
* include/c_global/cstddef (std::byte): Define for C++17.
* testsuite/18_support/byte/global_neg.cc: New test.
* testsuite/18_support/byte/ops.cc: New test.
* testsuite/18_support/byte/requirements.cc: New test.
From-SVN: r246005
2017-03-09 15:42:02 +00:00
Jonathan Wakely
f620e1d5c8
Add std::scoped_lock for C++17
...
* doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
* doc/html/*: Regenerate.
* include/std/mutex (scoped_lock): Implement new C++17 template.
* testsuite/30_threads/scoped_lock/cons/1.cc: New test.
* testsuite/30_threads/scoped_lock/requirements/
explicit_instantiation.cc: New test.
* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
From-SVN: r245903
2017-03-05 18:38:35 +00:00
Gerald Pfeifer
1a5a334e78
debug_mode.xml: Update and simplify note on link- and run-time coexistence.
...
* doc/xml/manual/debug_mode.xml: Update and simplify note
on link- and run-time coexistence.
Co-Authored-By: François Dumont <frs.dumont@gmail.com>
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r245848
2017-03-02 19:11:50 +00:00
Gerald Pfeifer
00133e166c
documentation_hacking.xml: Tweak link to doxygen.org.
...
* doc/xml/manual/documentation_hacking.xml: Tweak link to
doxygen.org.
From-SVN: r245808
2017-03-01 12:53:28 +00:00
Gerald Pfeifer
ff7da2b6cf
* doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
...
From-SVN: r245572
2017-02-19 10:54:35 +00:00
Gerald Pfeifer
3fad5342e2
io.xml: Update link to groups.google.com.
...
* doc/xml/manual/io.xml: Update link to groups.google.com.
Tweak link description.
From-SVN: r245565
2017-02-18 21:15:51 +00:00
Gerald Pfeifer
dc15bc7ad6
* doc/xml/manual/profile_mode.xml: Fix link.
...
From-SVN: r245559
2017-02-18 08:37:19 +00:00
Gerald Pfeifer
60e5333170
policy_data_structures.xml: Simplify and standardize references to boost.org.
...
* doc/xml/manual/policy_data_structures.xml: Simplify and
standardize references to boost.org.
* doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
* doc/xml/manual/shared_ptr.xml: Ditto.
From-SVN: r245507
2017-02-16 15:25:18 +00:00
Gerald Pfeifer
42f8e766cc
* doc/xml/manual/profile_mode.xml: Update a paper reference.
...
From-SVN: r245349
2017-02-10 22:20:16 +00:00
Jonathan Wakely
96189df366
Update links and references in libstdc++ manual
...
* doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
name.
* doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
broken links to texts that are no longer online.
* doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
LCPC 2006 paper.
* doc/xml/manual/using.xml: Update links to memory model information.
* doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
Standard-Library Exception Safety".
* doc/html/*: Regenerate.
From-SVN: r245277
2017-02-08 12:02:36 +00:00
Gerald Pfeifer
41cf3f3eb9
profile_mode.xml: Unbreak link to "Optimizing Sorting with Machine Learning Algorithms".
...
* doc/xml/manual/profile_mode.xml: Unbreak link to
"Optimizing Sorting with Machine Learning Algorithms".
From-SVN: r245269
2017-02-08 07:22:01 +00:00
Gerald Pfeifer
a68354c883
abi.xml: Update link to "Sun Studio 11: C++ Migration Guide".
...
* doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
Migration Guide".
From-SVN: r245261
2017-02-07 23:38:12 +00:00
Gerald Pfeifer
ca314fbd25
lwg-active.html: Remove.
...
* doc/html/ext/lwg-active.html: Remove.
* doc/html/ext/lwg-closed.html: Ditto.
* doc/html/ext/lwg-defects.html: Ditto.
* doc/Makefile.am (xml_extradir): Remove.
(xml_extra): Ditto.
(stamp-html-docbook-lwg): Remove recipe...
(stamp-html-docbook-data): ...and its use here.
* doc/Makefile.in: Regenerate.
* doc/xml/manual/intro.xml: Shorten two paragraphs explaining
the relationship to the upstream working group.
Replace a local link to ../ext/lwg-active.html by the upstream one.
Replace all reference to ../ext/lwg-defects.html by a new entity
&DR; which refers to the upstream address.
From-SVN: r245258
2017-02-07 22:44:13 +00:00
Gerald Pfeifer
7c18cb707b
* doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
...
From-SVN: r245257
2017-02-07 22:10:06 +00:00
Gerald Pfeifer
ef7df15338
documentation_hacking.xml: Remove obsolete link to DocBook Publishing Tools.
...
* doc/xml/manual/documentation_hacking.xml: Remove obsolete link
to DocBook Publishing Tools.
epubcheck has moved to GitHub.
Update URL of the DocBook Element Reference; use that term as
link description instead of "online".
From-SVN: r245205
2017-02-06 10:26:59 +00:00
Jason Merrill
5668970a07
* name-lookup.c (parse_using_directive): Deprecate strong using.
...
From-SVN: r244936
2017-01-26 10:32:22 -05:00
Gerald Pfeifer
cd30831311
* doc/xml/manual/debug.xml: code.google.com uses https now.
...
From-SVN: r244770
2017-01-23 07:18:42 +00:00
Gerald Pfeifer
630f989317
* doc/xml/manual/test.xml: Fix link into gccint online manual.
...
From-SVN: r244765
2017-01-22 20:39:06 +00:00
Jonathan Wakely
8e4160112d
Fix typo in recent doc updates
...
* doc/xml/manual/abi.xml: Fix typo.
* doc/html/manual/abi.html: Likewise.
From-SVN: r244658
2017-01-19 23:15:13 +00:00
Jonathan Wakely
8c05647c56
PR78905 define _GLIBCXX_RELEASE macro
...
PR libstdc++/78905
* doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
Document that the deprecated _GLIBCXX_VERSION macro was removed for
the 4.0.0 release.
* doc/html/*: Regenerate.
* include/Makefile.am (_GLIBCXX_RELEASE): Set value.
* include/Makefile.in: Regenerate.
* include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
* testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
dg-error.
From-SVN: r244642
2017-01-19 16:40:46 +00:00
Jonathan Wakely
c6b8b5e4d3
PR69699 document why __GLIBCXX__ macro is useless
...
PR libstdc++/69699
* doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
_GLIBCXX__ macro is not useful. Remove redundant date information
and link to the GCC release timeline.
(abi.versioning.active): Move partial sentence into the previous
paragraph.
* doc/html/*: Regenerate.
From-SVN: r244532
2017-01-17 15:26:11 +00:00
Jonathan Wakely
4704f28e7a
PR66284 remove std::function special case for reference_wrapper
...
PR libstdc++/66284
* doc/xml/manual/intro.xml: Document LWG 2781 change.
* doc/html/*: Regenerate.
* include/std/functional (_Function_base::_Ref_manager): Remove.
(_Function_handler): Remove partial specializations for
reference_wrapper.
(function::target): Remove special case for const qualification.
* testsuite/20_util/function/6.cc: Adjust tests for target type.
* testsuite/20_util/function/7.cc: Likewise.
* testsuite/20_util/function/8.cc: Likewise.
From-SVN: r244364
2017-01-12 14:28:38 +00:00
Gerald Pfeifer
c671a0d674
documentation_hacking.xml: sourceforge.net now defaults to https; adjust reference.
...
* doc/xml/manual/documentation_hacking.xml: sourceforge.net now
defaults to https; adjust reference.
From-SVN: r244043
2017-01-04 02:33:08 +00:00
Jonathan Wakely
f61581f7a0
Fix typos in libstdc++ docs and update copyright years
...
* doc/xml/manual/spine.xml: Update copyright years.
* doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
* doc/xml/manual/test.xml: Likewise.
* doc/html/*: Regenerate.
From-SVN: r244017
2017-01-03 11:16:31 +00:00
Gerald Pfeifer
337160b8ec
faq.xml: Update address of C++ ABI link.
...
* doc/xml/faq.xml: Update address of C++ ABI link.
* doc/xml/manual/abi.xml: Ditto.
From-SVN: r244001
2017-01-02 00:33:17 +00:00
Jonathan Wakely
eae0b895e0
PR71856 try to fix Parallel Mode assertions again
...
PR libstdc++/71856
* doc/xml/manual/using.xml: Document macro.
* include/bits/c++config [_GLIBCXX_DEBUG || _GLIBCXX_PARALLEL]
(__glibcxx_assert): Rename to __glibcxx_assert_impl.
[_GLIBCXX_DEBUG] (__glibcxx_assert): Expand to __glibcxx_assert_impl.
* include/parallel/base.h [_GLIBCXX_PARALLEL_ASSERTIONS]
(_GLIBCXX_PARALLEL_ASSERT): Expand to __glibcxx_assert_impl.
[!_GLIBCXX_PARALLEL_ASSERTIONS] (_GLIBCXX_PARALLEL_ASSERT): Define as
empty.
* testsuite/25_algorithms/headers/algorithm/
parallel_algorithm_assert2.cc: New test.
From-SVN: r243434
2016-12-08 12:08:14 +00:00
Jonathan Wakely
6ae2ae3b84
Make std::tuple_size<cv T> SFINAE-friendly (LWG 2770)
...
* doc/xml/manual/intro.xml: Document LWG 2770 status. Remove entries
for 2742 and 2748.
* doc/html/*: Regenerate.
* include/std/utility (__tuple_size_cv_impl): New helper to safely
detect tuple_size<T>::value, as per LWG 2770.
(tuple_size<cv T>): Adjust partial specializations to derive from
__tuple_size_cv_impl.
* testsuite/20_util/tuple/cv_tuple_size.cc: Test SFINAE-friendliness.
From-SVN: r242452
2016-11-15 19:32:44 +00:00
Jonathan Wakely
bf56b0b838
Add std::string constructor for substring of string_view (LWG 2742)
...
* doc/xml/manual/intro.xml: Document LWG 2742 status.
* doc/html/*: Regenerate.
* include/bits/basic_string.h
(basic_string(const T&, size_type, size_type, const Allocator&)): Add
constructor for substring of basic_string_view, as per LWG 2742 but
with additional constraint to fix ambiguity.
* testsuite/21_strings/basic_string/cons/char/9.cc: New test.
* testsuite/21_strings/basic_string/cons/wchar_t/9.cc: New test.
From-SVN: r242416
2016-11-15 14:33:20 +00:00
Jonathan Wakely
8b99f005cb
Constrain swap overload for std::optional (LWG 2748)
...
* doc/xml/manual/intro.xml: Document LWG 2748 status.
* include/std/optional (optional<T>::swap): Use is_nothrow_swappable_v
for exception specification.
(swap(optional<T>&, optional<T>&)): Disable when T is not swappable.
* testsuite/20_util/optional/swap/2.cc: New test.
From-SVN: r242415
2016-11-15 14:33:09 +00:00
Jonathan Wakely
b2343559f2
Add array support to std::shared_ptr for C++17
...
* doc/xml/manual/status_cxx2017.xml: Update status.
* doc/html/manual/status.html: Regenerate.
* include/bits/shared_ptr.h (shared_ptr(unique_ptr<_Yp, _Del>)): Add
extension constructor to maintain C++14 behaviour.
* include/bits/shared_ptr_base.h (__sp_array_delete): Add new struct.
(__shared_count(_Ptr, false_type), __shared_count(_Ptr, true_type)):
New constructors.
(__sp_compatible_with, __sp_is_constructible): Add specializations
for array support.
(__sp_is_constructible_arr, __sp_is_constructible_arrN): New helpers.
(__shared_ptr_access): New base class for observer member functions.
(__shared_ptr::element_type): Use remove_extent.
(__shared_ptr::_UniqCompatible): Add __sp_compatible_with check.
(__shared_ptr(_Yp*)): Use tag dispatching to call new __shared_count
constructor.
(__shared_ptr(unique_ptr<_Yp, _Del>)): Add extension constructor.
(__shared_ptr::operator*, __shared_ptr::operator->): Remove and
inherit from __shared_ptr_access base class.
(__shared_ptr::__has_esft_base): Return false for array types.
(__weak_ptr::element_type): Use remove_extent.
* include/experimental/bits/shared_ptr.h (__libfund_v1): Remove.
(__shared_ptr<__libfund_v1<_Tp>>): Remove specializations.
(__wak_ptr<__libfund_v1<_Tp>>): Likewise.
(experimental::__sp_compatible_v): Redefine using
__sp_compatible_with.
(experimental::__sp_is_constructible_v): Redefine using
__sp_is_constructible.
(get_deleter, operator<<): Change argument from __shared_ptr to
shared_ptr.
* testsuite/20_util/shared_ptr/cons/array.cc: New test.
* testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: Adjust for
new behaviour.
* testsuite/20_util/shared_ptr/observers/array.cc: Test observers for
arrays.
* testsuite/20_util/shared_ptr/observers/array_neg.cc: New test.
From-SVN: r242369
2016-11-13 22:57:45 +00:00
Jonathan Wakely
1f5700e952
Implement std::launder for C++17
...
* doc/xml/manual/status_cxx2017.xml: Update status.
* doc/html/*: Regenerate.
* include/std/type_traits (has_unique_object_representations): Guard
with __has_builtin check.
* libsupc++/new (launder): Define for C++17.
* testsuite/18_support/launder/1.cc: New test.
* testsuite/18_support/launder/requirements.cc: New test.
* testsuite/18_support/launder/requirements_neg.cc: New test.
From-SVN: r241648
2016-10-28 15:09:33 +01:00
Jonathan Wakely
594ef205ae
Implement P0084R2, Emplace return type, for C++17
...
* doc/xml/manual/status_cxx2017.xml: Update status.
* doc/html/*: Regenerate.
* include/bits/deque.tcc (deque::emplace_front, deque::emplace_back):
Return a reference in C++17 mode.
* include/bits/forward_list.h (forward_list::emplace_front): Likewise.
* include/bits/stl_bvector.h (vector<bool>::emplace_back): Likewise.
* include/bits/stl_deque.h (deque::emplace_front, deque::emplace_back):
Likewise.
* include/bits/stl_list.h (list::emplace_front, list::emplace_back):
Likewise.
* include/bits/stl_queue.h (queue::emplace): Likewise.
* include/bits/stl_stack.h (stack::emplace): Likewise.
* include/bits/stl_vector.h (vector::emplace_back): Likewise.
* include/bits/vector.tcc (vector::emplace_back): Likewise.
* include/debug/deque (__gnu_debug::deque::emplace_front)
(__gnu_debug::deque::emplace_back): Likewise.
* include/debug/vector (__gnu_debug::vector::emplace_back): Likewise.
* testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
New.
* testsuite/23_containers/forward_list/modifiers/
emplace_cxx17_return.cc: New.
* testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc: New.
* testsuite/23_containers/queue/members/emplace_cxx17_return.cc: New.
* testsuite/23_containers/stack/members/emplace_cxx17_return.cc: New.
* testsuite/23_containers/vector/bool/emplace_cxx17_return.cc: New.
* testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
New.
From-SVN: r241234
2016-10-17 13:00:38 +01:00
Paolo Carlini
118c842441
testsuite_hooks.h: Rewrite VERIFY in terms of __builtin_printf and __builtin_abort.
...
2016-10-12 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/util/testsuite_hooks.h: Rewrite VERIFY in terms of
__builtin_printf and __builtin_abort.
* testsuite/lib/libstdc++.exp: Remove _GLIBCXX_ASSERT use.
* scripts/testsuite_flags.in: Likewise.
* testsuite/22_locale/time_get/get/char/1.cc: Likewise.
* testsuite/22_locale/time_get/get/char/2.cc: Likewise.
* testsuite/22_locale/time_get/get/wchar_t/1.cc: Likewise.
* testsuite/22_locale/time_get/get/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_filebuf/close/char/4879.cc: Likewise, adjust.
* testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: Likewise.
* testsuite/27_io/basic_filebuf/seekoff/char/26777.cc: Likewise.
* testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
Likewise.
* testsuite/27_io/objects/char/7.cc: Likewise.
* testsuite/27_io/objects/char/9661-1.cc: Likewise.
* testsuite/27_io/objects/wchar_t/7.cc: Likewise.
* testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
* testsuite/18_support/50594.cc: Remove 'test' variable, adjust.
* testsuite/18_support/bad_alloc/what.cc: Likewise.
* testsuite/18_support/bad_cast/what.cc: Likewise.
* testsuite/18_support/bad_exception/what.cc: Likewise.
* testsuite/18_support/bad_typeid/what.cc: Likewise.
* testsuite/18_support/exception/38732.cc: Likewise.
* testsuite/18_support/exception/what.cc: Likewise.
* testsuite/18_support/exception_ptr/64241.cc: Likewise.
* testsuite/18_support/exception_ptr/current_exception.cc: Likewise.
* testsuite/18_support/exception_ptr/lifespan.cc: Likewise.
* testsuite/18_support/exception_ptr/make_exception_ptr.cc: Likewise.
* testsuite/18_support/exception_ptr/rethrow_exception.cc: Likewise.
* testsuite/18_support/nested_exception/cons.cc: Likewise.
* testsuite/18_support/nested_exception/nested_ptr.cc: Likewise.
* testsuite/18_support/nested_exception/rethrow_if_nested.cc: Likewise.
* testsuite/18_support/nested_exception/rethrow_nested.cc: Likewise.
* testsuite/18_support/nested_exception/throw_with_nested.cc: Likewise.
* testsuite/18_support/numeric_limits/char16_32_t.cc: Likewise.
* testsuite/18_support/numeric_limits/digits10.cc: Likewise.
* testsuite/18_support/numeric_limits/dr559.cc: Likewise.
* testsuite/18_support/numeric_limits/epsilon.cc: Likewise.
* testsuite/18_support/numeric_limits/is_iec559.cc: Likewise.
* testsuite/18_support/numeric_limits/is_signed.cc: Likewise.
* testsuite/18_support/numeric_limits/lowest.cc: Likewise.
* testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
* testsuite/18_support/numeric_limits/min_max.cc: Likewise.
* testsuite/18_support/numeric_limits/specialization_default_values.cc:
Likewise.
* testsuite/18_support/type_info/hash_code.cc: Likewise.
* testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise.
* testsuite/19_diagnostics/error_category/cons/default.cc: Likewise.
* testsuite/19_diagnostics/error_category/operators/equal.cc: Likewise.
* testsuite/19_diagnostics/error_category/operators/
not_equal.cc: Likewise.
* testsuite/19_diagnostics/error_code/cons/1.cc: Likewise.
* testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise.
* testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise.
* testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise.
* testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise.
* testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise.
* testsuite/19_diagnostics/error_condition/cons/1.cc: Likewise.
* testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise.
* testsuite/19_diagnostics/error_condition/modifiers/39881.cc:
Likewise.
* testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise.
* testsuite/19_diagnostics/error_condition/operators/equal.cc:
Likewise.
* testsuite/19_diagnostics/error_condition/operators/not_equal.cc:
Likewise.
* testsuite/19_diagnostics/logic_error/what-1.cc: Likewise.
* testsuite/19_diagnostics/logic_error/what-2.cc: Likewise.
* testsuite/19_diagnostics/logic_error/what-3.cc: Likewise.
* testsuite/19_diagnostics/logic_error/what-big.cc: Likewise.
* testsuite/19_diagnostics/runtime_error/what-1.cc: Likewise.
* testsuite/19_diagnostics/runtime_error/what-2.cc: Likewise.
* testsuite/19_diagnostics/runtime_error/what-3.cc: Likewise.
* testsuite/19_diagnostics/runtime_error/what-big.cc: Likewise.
* testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
* testsuite/19_diagnostics/system_error/what-1.cc: Likewise.
* testsuite/19_diagnostics/system_error/what-2.cc: Likewise.
* testsuite/19_diagnostics/system_error/what-3.cc: Likewise.
* testsuite/19_diagnostics/system_error/what-4.cc: Likewise.
* testsuite/19_diagnostics/system_error/what-big.cc: Likewise.
* testsuite/20_util/addressof/1.cc: Likewise.
* testsuite/20_util/align/1.cc: Likewise.
* testsuite/20_util/align/2.cc: Likewise.
* testsuite/20_util/allocator/1.cc: Likewise.
* testsuite/20_util/allocator/10378.cc: Likewise.
* testsuite/20_util/allocator/8230.cc: Likewise.
* testsuite/20_util/allocator_traits/members/allocate_hint.cc:
Likewise.
* testsuite/20_util/allocator_traits/members/construct.cc: Likewise.
* testsuite/20_util/allocator_traits/members/destroy.cc: Likewise.
* testsuite/20_util/allocator_traits/members/max_size.cc: Likewise.
* testsuite/20_util/any/assign/exception.cc: Likewise.
* testsuite/20_util/auto_ptr/1.cc: Likewise.
* testsuite/20_util/auto_ptr/2.cc: Likewise.
* testsuite/20_util/auto_ptr/3.cc: Likewise.
* testsuite/20_util/auto_ptr/4.cc: Likewise.
* testsuite/20_util/auto_ptr/5.cc: Likewise.
* testsuite/20_util/auto_ptr/6.cc: Likewise.
* testsuite/20_util/auto_ptr/7.cc: Likewise.
* testsuite/20_util/bind/all_bound.cc: Likewise.
* testsuite/20_util/bind/conv_result.cc: Likewise.
* testsuite/20_util/bind/cv_quals.cc: Likewise.
* testsuite/20_util/bind/cv_quals_2.cc
* testsuite/20_util/bind/nested.cc: Likewise.
* testsuite/20_util/bind/placeholders.cc: Likewise.
* testsuite/20_util/bind/ref.cc: Likewise.
* testsuite/20_util/bind/ref2.cc: Likewise.
* testsuite/20_util/common_type/requirements/typedefs-1.cc: Likewise.
* testsuite/20_util/duration/arithmetic/1.cc: Likewise.
* testsuite/20_util/duration/arithmetic/2.cc: Likewise.
* testsuite/20_util/duration/arithmetic/58850.cc: Likewise.
* testsuite/20_util/duration/arithmetic/dr2020.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/2.cc: Likewise.
* testsuite/20_util/enable_if/requirements/typedefs.cc: Likewise.
* testsuite/20_util/enable_if/requirements/typedefs_neg.cc: Likewise.
* testsuite/20_util/enable_shared_from_this/members/assign.cc:
Likewise.
* testsuite/20_util/exchange/1.cc: Likewise.
* testsuite/20_util/forward/a.cc: Likewise.
* testsuite/20_util/forward/b.cc: Likewise.
* testsuite/20_util/forward/d.cc: Likewise.
* testsuite/20_util/function/1.cc: Likewise.
* testsuite/20_util/function/2.cc: Likewise.
* testsuite/20_util/function/3.cc: Likewise.
* testsuite/20_util/function/4.cc: Likewise.
* testsuite/20_util/function/43397.cc: Likewise.
* testsuite/20_util/function/5.cc: Likewise.
* testsuite/20_util/function/6.cc: Likewise.
* testsuite/20_util/function/7.cc: Likewise.
* testsuite/20_util/function/8.cc: Likewise.
* testsuite/20_util/function/9.cc: Likewise.
* testsuite/20_util/function/assign/move.cc: Likewise.
* testsuite/20_util/function/cons/move.cc: Likewise.
* testsuite/20_util/function_objects/dr660.cc: Likewise.
* testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Likewise.
* testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
* testsuite/20_util/hash/chi2_q_document_words.cc: Likewise.
* testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
* testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
* testsuite/20_util/hash/operators/size_t.cc: Likewise.
* testsuite/20_util/hash/quality.cc: Likewise.
* testsuite/20_util/integral_constant/static_definition.cc: Likewise.
* testsuite/20_util/integral_constant/true_false_value.cc: Likewise.
* testsuite/20_util/is_function/24808.cc: Likewise.
* testsuite/20_util/is_object/24808.cc: Likewise.
* testsuite/20_util/move_if_noexcept/1.cc: Likewise.
* testsuite/20_util/move_if_noexcept/constexpr.cc: Likewise.
* testsuite/20_util/owner_less/cmp.cc: Likewise.
* testsuite/20_util/pair/1.cc: Likewise.
* testsuite/20_util/pair/2.cc: Likewise.
* testsuite/20_util/pair/3.cc: Likewise.
* testsuite/20_util/pair/4.cc: Likewise.
* testsuite/20_util/pair/make_pair/constexpr.cc: Likewise.
* testsuite/20_util/pair/moveable.cc: Likewise.
* testsuite/20_util/pair/piecewise.cc: Likewise.
* testsuite/20_util/pair/swap.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/ops1.cc: Likewise.
* testsuite/20_util/ratio/operations/ops2.cc: Likewise.
* testsuite/20_util/ratio/operations/ops3.cc: Likewise.
* testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
* testsuite/20_util/scoped_allocator/1.cc: Likewise.
* testsuite/20_util/scoped_allocator/2.cc: Likewise.
* testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
* testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
* testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
* testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
* testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
Likewise.
* testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
* testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/alloc.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
Likewise.
* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
Likewise.
* testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
* testsuite/20_util/shared_ptr/creation/alloc.cc: Likewise.
* testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
* testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
* testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
* testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
* testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
* testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
* testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
* testsuite/20_util/shared_ptr/misc/io.cc: Likewise.
* testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
* testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
* testsuite/20_util/shared_ptr/modifiers/reset_alloc.cc: Likewise.
* testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
* testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
* testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
* testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
* testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
* testsuite/20_util/shared_ptr/observers/owner_before.cc: Likewise.
* testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
* testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
Likewise.
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
* testsuite/20_util/specialized_algorithms/uninitialized_copy/
move_iterators/1.cc: Likewise.
* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
move_iterators/1.cc: Likewise.
* testsuite/20_util/temporary_buffer.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/nonmember/constexpr.cc: Likewise.
* testsuite/20_util/tuple/48476.cc: Likewise.
* testsuite/20_util/tuple/comparison_operators/comparisons.cc:
Likewise.
* testsuite/20_util/tuple/cons/allocators.cc: Likewise.
* testsuite/20_util/tuple/cons/assignment.cc: Likewise.
* testsuite/20_util/tuple/cons/big_tuples.cc: Likewise.
* testsuite/20_util/tuple/cons/constructor.cc: Likewise.
* testsuite/20_util/tuple/creation_functions/23978.cc: Likewise.
* testsuite/20_util/tuple/creation_functions/48476.cc: Likewise.
* testsuite/20_util/tuple/creation_functions/constexpr.cc: Likewise.
* testsuite/20_util/tuple/creation_functions/forward_as_tuple.cc:
Likewise.
* testsuite/20_util/tuple/creation_functions/make_tuple.cc: Likewise.
* testsuite/20_util/tuple/creation_functions/tie.cc: Likewise.
* testsuite/20_util/tuple/creation_functions/tie2.cc: Likewise.
* testsuite/20_util/tuple/cv_tuple_size.cc: Likewise.
* testsuite/20_util/tuple/element_access/get.cc: Likewise.
* testsuite/20_util/tuple/element_access/get_by_type.cc: Likewise.
* testsuite/20_util/tuple/moveable.cc: Likewise.
* testsuite/20_util/tuple/swap.cc: Likewise.
* testsuite/20_util/tuple/tuple_size.cc: Likewise.
* testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
* testsuite/20_util/typeindex/hash.cc: Likewise.
* testsuite/20_util/typeindex/hash_code.cc: Likewise.
* testsuite/20_util/typeindex/name.cc: Likewise.
* testsuite/20_util/unique_ptr/assign/48635.cc: Likewise.
* testsuite/20_util/unique_ptr/assign/move.cc: Likewise.
* testsuite/20_util/unique_ptr/assign/move_array.cc: Likewise.
* testsuite/20_util/unique_ptr/assign/nullptr.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/nullptr.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/pointer.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/pointer_array.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/ptr_deleter.cc: Likewise.
* testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
* testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
* testsuite/20_util/unique_ptr/hash/1.cc: Likewise.
* testsuite/20_util/unique_ptr/modifiers/43183.cc: Likewise.
* testsuite/20_util/unique_ptr/specialized_algorithms/
comparisons.cc: Likewise.
* testsuite/20_util/unique_ptr/specialized_algorithms/
comparisons_array.cc: Likewise.
* testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc:
Likewise.
* testsuite/20_util/uses_allocator/construction.cc: Likewise.
* testsuite/20_util/uses_allocator/value.cc: Likewise.
* testsuite/20_util/variant/run.cc: Likewise.
* testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
* testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
* testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
Likewise.
* testsuite/21_strings/basic_string/capacity/1.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/char/1.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/char/18654.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/char/2.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/char/shrink_to_fit.cc:
Likewise.
* testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
Likewise.
* testsuite/21_strings/basic_string/capacity/wchar_t/2.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/wchar_t/shrink_to_fit.cc:
Likewise.
* testsuite/21_strings/basic_string/cons/char/1.cc: Likewise.
* testsuite/21_strings/basic_string/cons/char/2.cc: Likewise.
* testsuite/21_strings/basic_string/cons/char/3.cc: Likewise.
* testsuite/21_strings/basic_string/cons/char/4.cc: Likewise.
* testsuite/21_strings/basic_string/cons/char/42261.cc: Likewise.
* testsuite/21_strings/basic_string/cons/char/5.cc: Likewise.
* testsuite/21_strings/basic_string/cons/char/6.cc: Likewise.
* testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
* testsuite/21_strings/basic_string/cons/char/8.cc: Likewise.
* testsuite/21_strings/basic_string/cons/char/moveable.cc: Likewise.
* testsuite/21_strings/basic_string/cons/char/moveable2.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/2.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/3.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/4.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/42261.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/5.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/6.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc:
Likewise.
* testsuite/21_strings/basic_string/element_access/char/1.cc: Likewise.
* testsuite/21_strings/basic_string/element_access/char/2.cc: Likewise.
* testsuite/21_strings/basic_string/element_access/char/3.cc: Likewise.
* testsuite/21_strings/basic_string/element_access/char/4.cc: Likewise.
* testsuite/21_strings/basic_string/element_access/char/58163.cc:
Likewise.
* testsuite/21_strings/basic_string/element_access/char/empty.cc:
Likewise.
* testsuite/21_strings/basic_string/element_access/char/front_back.cc:
Likewise.
* testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string/element_access/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string/element_access/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
Likewise.
* testsuite/21_strings/basic_string/element_access/wchar_t/58163.cc:
Likewise.
* testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc:
Likewise.
* testsuite/21_strings/basic_string/element_access/wchar_t/
front_back.cc: Likewise.
* testsuite/21_strings/basic_string/init-list.cc: Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/char/
28277.cc: Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/char/4.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/char/5.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/char/6.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/char/7.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/char/8.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/char/9.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/pod/
10081-in.cc: Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/pod/
10081-out.cc: Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
10.cc: Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
11.cc: Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
28277.cc: Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/4.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/6.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/7.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/8.cc:
Likewise.
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/9.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/append/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/append/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/append/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/char/
move_assign.cc: Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
move_assign.cc: Likewise.
* testsuite/21_strings/basic_string/modifiers/insert/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/insert/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/char/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/char/5.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/char/6.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/5.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/6.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/
stoull.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/char/
to_string.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
dr1261.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stod.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stof.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stoi.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stol.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stold.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stoll.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stoul.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stoull.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
to_wstring.cc: Likewise.
* testsuite/21_strings/basic_string/operations/compare/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/compare/char/13650.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/compare/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/compare/wchar_t/
13650.cc: Likewise.
* testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/data/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/find/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/find/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/find/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/find/char/4.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/find/char/5.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/rfind/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/rfind/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/rfind/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/rfind/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/rfind/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/rfind/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/substr/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/substr/wchar_t/
1.cc: Likewise.
* testsuite/21_strings/basic_string/operators/char/1.cc: Likewise.
* testsuite/21_strings/basic_string/operators/char/2.cc: Likewise.
* testsuite/21_strings/basic_string/operators/char/3.cc: Likewise.
* testsuite/21_strings/basic_string/operators/char/4.cc: Likewise.
* testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
* testsuite/21_strings/basic_string/operators/wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string/operators/wchar_t/2.cc: Likewise.
* testsuite/21_strings/basic_string/operators/wchar_t/3.cc: Likewise.
* testsuite/21_strings/basic_string/operators/wchar_t/4.cc: Likewise.
* testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
* testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
* testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
* testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
* testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
* testsuite/21_strings/basic_string_view/element_access/char/
1.cc: Likewise.
* testsuite/21_strings/basic_string_view/element_access/char/
empty.cc: Likewise.
* testsuite/21_strings/basic_string_view/element_access/char/
front_back.cc: Likewise.
* testsuite/21_strings/basic_string_view/element_access/wchar_t/
1.cc: Likewise.
* testsuite/21_strings/basic_string_view/element_access/wchar_t/
empty.cc: Likewise.
* testsuite/21_strings/basic_string_view/element_access/wchar_t/
front_back.cc: Likewise.
* testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
* testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
* testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
Likewise.
* testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
char/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
char/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/char/
1.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/char/
13650.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
13650.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/
1.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/
2.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/
3.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/
4.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/rfind/char/
1.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/rfind/char/
2.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/rfind/char/
3.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/
1.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/
2.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/
3.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/string_conversion/
1.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/substr/char/
1.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/
1.cc: Likewise.
* testsuite/21_strings/basic_string_view/operators/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/c_strings/char/1.cc: Likewise.
* testsuite/21_strings/c_strings/wchar_t/1.cc: Likewise.
* testsuite/21_strings/char_traits/requirements/char/1.cc: Likewise.
* testsuite/21_strings/char_traits/requirements/char/57704.cc:
Likewise.
* testsuite/21_strings/char_traits/requirements/short/1.cc: Likewise.
* testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Likewise.
* doc/xml/manual/test.xml: Fix typo.
From-SVN: r241069
2016-10-12 16:13:06 +00:00
Jonathan Wakely
e7722f1106
Define std::sample for C++17
...
* doc/xml/manual/status_cxx2017.xml: Add std::sample status.
* doc/html/*: Regenerate.
* include/experimental/algorithm (__sample): Move to bits/stl_algo.h
and into namespace std.
* include/bits/stl_algo.h (__sample): Define here. Fix invalid use
of input iterator. Defend against overloaded comma operator.
(sample): Define for C++17.
* testsuite/25_algorithms/sample/1.cc: New test.
From-SVN: r241062
2016-10-12 16:26:48 +01:00
Jonathan Wakely
164b41ebf3
Do not copy std:call_once arguments (LWG 2442)
...
* doc/xml/manual/intro.xml: Document LWG 2442 status.
* include/std/mutex [_GLIBCXX_HAVE_TLS] (__once_call_impl): Remove.
[_GLIBCXX_HAVE_TLS] (_Once_call): Declare primary template and define
partial specialization to unpack args and forward to std::invoke.
(call_once) [_GLIBCXX_HAVE_TLS]: Use forward_as_tuple and _Once_call
instead of __bind_simple and __once_call_impl.
(call_once) [!_GLIBCXX_HAVE_TLS]: Use __invoke instead of
__bind_simple.
* testsuite/30_threads/call_once/dr2442.cc: New test.
From-SVN: r241031
2016-10-12 12:20:25 +01:00
Jonathan Wakely
0470fad0d6
Simplify std::rethrow_if_nested definition
...
* doc/xml/manual/intro.xml: Document LWG 2484 status.
* libsupc++/nested_exception.h (_Throw_with_nested_impl)
(_Throw_with_nested_helper): Remove.
(__throw_with_nested_impl): New overloaded functions to implement
throw_with_nested logic.
(throw_with_nested): Call __throw_with_nested_impl.
(_Rethrow_if_nested_impl): Remove
(__rethrow_if_nested_impl): New overloaded functions to implement
rethrow_if_nested logic.
(rethrow_if_nested): Call __rethrow_if_nested_impl.
* testsuite/18_support/nested_exception/rethrow_if_nested.cc: Test
problem cases from LWG 2484.
From-SVN: r240983
2016-10-11 11:33:36 +01:00
Jonathan Wakely
5c24897577
Improve docs on libstdc++ source-code layout
...
* doc/xml/manual/appendix_contributing.xml (contrib.organization):
Replace <literallayout> with nested <variablelist> elements. Update
some more outdated text.
* doc/html/*: Regenerate.
From-SVN: r240952
2016-10-10 23:34:17 +01:00
Jonathan Wakely
db62593447
Update docs on libstdc++ source-code layout
...
* doc/xml/manual/appendix_contributing.xml (contrib.organization):
Describe other subdirectories and add markup. Remove outdated
reference to check-script target.
* doc/html/*: Regenerate.
From-SVN: r240946
2016-10-10 19:57:15 +01:00
Jonathan Wakely
e2be44770c
Correct C++11 implementation status docs
...
* doc/xml/manual/status_cxx2011.xml: Correct C++11 status.
From-SVN: r240944
2016-10-10 19:39:18 +01:00
Jonathan Wakely
9e023e3321
Implement constexpr std::addressof for C++17
...
* doc/xml/manual/intro.xml: Document DR 2296 status.
* doc/xml/manual/status_cxx2017.xml: Update status.
* include/bits/move.h (__addressof): Add _GLIBCXX_CONSTEXPR and
call __builtin_addressof.
(addressof): Add _GLIBCXX17_CONSTEXPR.
* testsuite/20_util/addressof/requirements/constexpr.cc: New test.
* testsuite/20_util/forward/c_neg.cc: Adjust dg-error lineno.
* testsuite/20_util/forward/f_neg.cc: Likewise.
From-SVN: r240929
2016-10-10 16:34:28 +01:00
Jonathan Wakely
296002c6a1
Improve implementation-defined docs for libstdc++
...
* doc/xml/manual/status_cxx1998.xml: Improve documentation of
implementation-defined properties.
* doc/xml/manual/status_cxx2011.xml: Likewise.
* doc/xml/manual/status_cxx2017.xml: Likewise.
From-SVN: r240869
2016-10-07 19:02:53 +01:00
Jonathan Wakely
873c7d5ade
Implement std::has_unique_object_representations
...
* doc/xml/manual/status_cxx2017.xml: Update status.
* include/std/type_traits (has_unique_object_representations): Define.
* testsuite/20_util/has_unique_object_representations/value.cc: New.
* testsuite/20_util/has_unique_object_representations/requirements/
explicit_instantiation.cc: New.
* testsuite/20_util/has_unique_object_representations/requirements/
typedefs.cc: New.
From-SVN: r240868
2016-10-07 19:02:43 +01:00
Jonathan Wakely
937ec71aba
Make std::scoped_allocator_adaptor's OUTERMOST recursive
...
* doc/xml/manual/status_cxx2011.xml: Update status.
* include/std/scoped_allocator (__outer_allocator_t, __outermost_type):
New helpers for recursive OUTERMOST.
(__outermost): Use __outermost_type::_S_outermost.
(__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove.
(scoped_allocator_adaptor::__outermost_alloc_traits): Use new
__outermost_type helper.
* testsuite/20_util/scoped_allocator/outermost.cc: New test.
From-SVN: r240844
2016-10-06 22:22:35 +01:00
Jonathan Wakely
606dda21c8
Define std::gcd and std::lcm for C++17
...
* doc/xml/manual/status_cxx2017.xml: Update gcd/lcm status.
* doc/html/*: Regenerate.
* include/experimental/numeric (__abs): Move to <numeric>.
(gcd, lcm): Use __detail::gcd and __detail::lcm.
* include/std/numeric (__detail::__abs_integral)
(__detail::__gcd, __detail::__lcm): Define.
(gcd, lcm): Define for C++17.
* testsuite/26_numerics/gcd/1.cc: New test.
* testsuite/26_numerics/lcm/1.cc: New test.
* testsuite/experimental/numeric/gcd.cc: Swap contents with ...
* testsuite/experimental/numeric/lcd.cc: ... this.
From-SVN: r240723
2016-10-03 18:01:10 +01:00
Jonathan Wakely
37b204de60
Implement LWG 2192 and LWG 2294 for std::abs
...
* doc/xml/manual/intro.xml: Document LWG 2192 changes.
* doc/html/*: Regenerate.
* include/Makefile.am: Add bits/std_abs.h.
* include/Makefile.in: Regenerate.
* include/bits/std_abs.h: New header defining all required overloads
of std::abs in one place (LWG 2294).
* include/c_global/cmath (abs(double), abs(float), abs(long double)):
Move to bits/std_abs.h.
(abs<_Tp>(_Tp)): Remove.
* include/c_global/cstdlib (abs(long), abs(long long), abs(__int<N>)):
Move to bits/std_abs.h.
* testsuite/26_numerics/headers/cmath/dr2192.cc: New test.
* testsuite/26_numerics/headers/cmath/dr2192_neg.cc: New test.
* testsuite/26_numerics/headers/cstdlib/dr2192.cc: New test.
* testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: New test.
From-SVN: r240660
2016-09-30 17:07:43 +01:00
Jonathan Wakely
4940de303c
Define feature macro and update C++17 library status
...
* doc/xml/manual/status_cxx2017.xml: Update status.
* doc/html/*: Regenerate.
* include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
* testsuite/20_util/function_objects/searchers.cc: Test feature macro.
From-SVN: r240550
2016-09-27 16:39:51 +01:00
Jonathan Wakely
b658669de0
Define 3-argument overloads of std::hypot for C++17 (P0030R1)
...
* doc/xml/manual/status_cxx2017.xml: Update status.
* include/c_global/cmath (hypot): Add three-dimensional overloads.
* testsuite/26_numerics/headers/cmath/hypot.cc: New.
From-SVN: r240547
2016-09-27 16:14:24 +01:00
Jonathan Wakely
2dbe56bdfb
Implement C++17 node extraction and insertion (P0083R5)
...
* doc/xml/manual/status_cxx2017.xml: Document status.
* doc/html/*: Regenerate.
* include/Makefile.am: Add bits/node_handle.h and reorder.
* include/Makefile.in: Regenerate.
* include/bits/hashtable.h (_Hashtable::node_type)
(_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
(_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
(_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
(_Hash_merge_helper): Define primary template.
* include/bits/node_handle.h: New header.
* include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
friend.
(map::node_type, map::insert_return_type, map::extract, map::merge)
(map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
Define new members.
(_Rb_tree_merge_helper): Specialize for map.
* include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
as friend.
(multimap::node_type, multimap::extract, multimap::merge)
(multimap::insert(node_type&&))
(multimap::insert(const_iterator, node_type&&)): Define.
(_Rb_tree_merge_helper): Specialize for multimap.
* include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
as friend.
(multiset::node_type, multiset::extract, multiset::merge)
(multiset::insert(node_type&&))
(multiset::insert(const_iterator, node_type&&)): Define.
* include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
friend.
(set::node_type, set::insert_return_type, set::extract, set::merge)
(set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
Define.
(_Rb_tree_merge_helper): Specialize for set.
* include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
(_Rb_tree::node_type, _Rb_tree::insert_return_type)
(_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
(_Rb_tree::_M_reinsert_node_hint_unique)
(_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
(_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
(_Rb_tree_merge_helper): Specialize for multiset.
* include/bits/unordered_map.h (unordered_map): Declare
unordered_map<> and unordered_multimap<> as friends.
(unordered_map::node_type, unordered_map::insert_return_type)
(unordered_map::extract, unordered_map::merge)
(unordered_map::insert(node_type&&))
(unordered_map::insert(const_iterator, node_type&&))
(unordered_multimap): Declare _Hash_merge_helper as friend.
(unordered_multimap::node_type, unordered_multimap::extract)
(unordered_multimap::merge, unordered_multimap::insert(node_type&&))
(unordered_multimap::insert(const_iterator, node_type&&)): Define.
(_Hash_merge_helper): Specialize for unordered maps and multimaps.
* include/bits/unordered_set.h (unordered_set, unordered_multiset):
Declare _Hash_merge_helper as friend.
(unordered_set::node_type, unordered_set::insert_return_type)
(unordered_set::extract, unordered_set::merge)
(unordered_set::insert(node_type&&))
(unordered_set::insert(const_iterator, node_type&&)): Define.
(unordered_multiset::node_type, unordered_multiset::extract)
(unordered_multiset::merge, unordered_multiset::insert(node_type&&))
(unordered_multiset::insert(const_iterator, node_type&&)): Define.
(_Hash_merge_helper): Specialize for unordered sets and multisets.
* include/debug/map.h (map): Add using declarations or forwarding
functions for new members.
* include/debug/map.h (multimap): Likewise.
* include/debug/map.h (multiset): Likewise.
* include/debug/map.h (set): Likewise.
* include/debug/unordered_map (unordered_map, unordered_multimap):
Likewise.
* include/debug/unordered_set( unordered_set, unordered_multiset):
Likewise.
* python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
helper function.
(get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
(StdNodeHandlePrinter): Define printer for node handles.
(build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
* testsuite/23_containers/map/modifiers/extract.cc: New.
* testsuite/23_containers/map/modifiers/merge.cc: New.
* testsuite/23_containers/multimap/modifiers/extract.cc: New.
* testsuite/23_containers/multimap/modifiers/merge.cc: New.
* testsuite/23_containers/multiset/modifiers/extract.cc: New.
* testsuite/23_containers/multiset/modifiers/merge.cc: New.
* testsuite/23_containers/set/modifiers/extract.cc: New.
* testsuite/23_containers/set/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
* testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
New.
* testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
New.
* testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
* testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
dg-error lineno.
* testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
From-SVN: r240363
2016-09-22 14:58:49 +01:00
Jonathan Wakely
6ee3fd9742
Fix typo in Libstdc++ Profile Mode docs
...
* doc/xml/manual/profile_mode.xml: Fix typo.
* doc/html/manual/profile_mode_devel.html: Regenerate.
From-SVN: r240204
2016-09-16 23:09:15 +01:00
Jonathan Wakely
1b75c93601
Editorial fixes to libstdc++ debug mode docs
...
* doc/xml/manual/debug_mode.xml: Minor editorial fixes.
* doc/html/*: Regenerate.
From-SVN: r240161
2016-09-15 11:30:58 +01:00
Jonathan Wakely
10491e4c04
libstdc++/51960 move-construction for raw_storage_iterator
...
PR libstdc++/51960
* doc/xml/manual/intro.xml: Document DR 2127 change.
* doc/html/*: Regenerate.
* include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
(operator++(), operator++(int)): Use injected class name.
* testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
From-SVN: r239781
2016-08-26 14:11:29 +01:00
Jonathan Wakely
86bbf15b6b
Add new std::basic_string constructor (LWG 2583)
...
* config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
precise patterns for basic_string constructors.
(GLIBCXX_3.4.23): Export new constructors.
* doc/xml/manual/intro.xml: Document LWG 2583 status.
* doc/html/*: Regenerate.
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(basic_string(const basic_string&, size_type, const Alloc&)): Add
new constructor for LWG 2583.
(basic_string(const basic_string&, size_type, size_type)): Remove
default argument.
[!_GLIBCXX_USE_CXX11_ABI]: Likewise.
* include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
* testsuite/21_strings/basic_string/cons/char/8.cc: New test.
* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
From-SVN: r239773
2016-08-26 11:41:37 +01:00
Jonathan Wakely
5d1c6b3e76
Remove reference to -pthreads option in libstdc++ manual
...
* doc/xml/manual/using.xml: Remove reference to -pthreads option.
* doc/html/*: Regenerate.
From-SVN: r239693
2016-08-23 11:13:36 +01:00
Jonathan Wakely
94f54d47ca
Add noexcept to std::function swap
...
PR libstdc++/77322
* doc/xml/manual/intro.xml: Document DR 2062 change.
* include/std/functional (function::swap): Add noexcept.
(swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
* testsuite/20_util/function/77322.cc: New test.
From-SVN: r239662
2016-08-22 17:47:34 +01:00
Jonathan Wakely
e6ee5bfd68
Define std::not_fn for C++17
...
* doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
* doc/html/*: Regenerate.
* include/experimental/functional (_Not_fn, not_fn): Match C++17
semantics.
* include/std/functional (_Not_fn, not_fn): Define for C++17.
* testsuite/20_util/not_fn/1.cc: New.
* testsuite/experimental/functional/not_fn.cc: Test abstract class.
Remove test for volatile-qualified wrapper.
From-SVN: r239623
2016-08-19 16:42:34 +01:00
Jonathan Wakely
387edf83a0
Define std::atomic<T>::is_always_lock_free for C++17
...
* include/std/atomic (atomic::is_always_lock_free): Define.
* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
* testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
* testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
* doc/xml/manual/status_cxx2017.xml: Update status.
* doc/html/*: Regenerate.
From-SVN: r239622
2016-08-19 16:42:27 +01:00
Jonathan Wakely
1f4ed04ed8
Update C++17 library status table
...
* doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
and variant.
* doc/html/*: Regenerate.
From-SVN: r239608
2016-08-19 09:16:13 +01:00
Jonathan Wakely
0b224dcf60
Expand libstdc++ docs on testing
...
* doc/xml/manual/test.xml (test.run.permutations): Expand section.
(test.new_tests): Rewrite section.
(tests.dg.directives): New section.
* doc/html/*: Regenerate.
From-SVN: r239574
2016-08-18 14:47:42 +01:00
Jonathan Wakely
b56d48ef86
Improve documentation of libstdc++ test targets
...
* doc/xml/manual/test.xml: Improve documentation of test targets.
Document new-abi-baseline, check-debug, and check-parallel targets.
From-SVN: r239573
2016-08-18 14:47:37 +01:00
Jonathan Wakely
409d55557b
Document libstdc++.so versioning in manual
...
* doc/xml/manual/build_hacking.xml: New section on shared library
versioning.
From-SVN: r239572
2016-08-18 14:47:33 +01:00
Jonathan Wakely
a8107a983f
Improve markup in libstdc++ manual
...
* doc/xml/manual/build_hacking.xml: Improve markup.
* doc/xml/manual/test.xml: Likewise. Change section title from "Test"
to "Testing".
* doc/xml/faq.xml: Change link text to "Testing".
From-SVN: r239571
2016-08-18 14:47:28 +01:00
Jonathan Wakely
caee9cdee7
Update C++17 library status table
...
* doc/xml/manual/status_cxx2017.xml: Update status table.
* doc/html/manual/status.html: Regenerate.
From-SVN: r239209
2016-08-06 13:45:58 +01:00
Jonathan Wakely
3e9f67e6a2
Add std::apply for C++17
...
* doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
* doc/html/manual/status.html: Regenerate.
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/bits/invoke.h: New header.
(__invoke): Make constexpr. Add && to types in exception specification.
* include/experimental/tuple (apply, __apply_impl): Fix non-reserved
names. Include <bits/invoke.h> and use std::__invoke.
* include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
new header.
(invoke): Add && to types in exception specification.
* include/std/tuple (apply, __apply_impl): Define for C++17.
* testsuite/20_util/tuple/apply/1.cc: New test.
* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
lineno.
From-SVN: r239183
2016-08-06 01:06:02 +01:00
Jonathan Wakely
a0b1bf2181
Correct status of __cpp_lib_enable_shared_from_this
...
* doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
* doc/html/manual/status.html: Regenerate.
From-SVN: r239171
2016-08-05 14:57:30 +01:00