4fb43923ef
398 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
Jonathan Wakely
|
7759a387e2 |
PR libstdc++/79433 no #error for including headers with wrong -std
Backport from mainline 2017-09-12 Jonathan Wakely <jwakely@redhat.com> 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: r253943 |
||
Jonathan Wakely
|
0182e8bb7b |
Implement std::experimental::source_location (N4519)
Backport from mainline 2017-05-16 Jonathan Wakely <jwakely@redhat.com> * 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: r250538 |
||
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 |
||
Jakub Jelinek
|
3c36aa6ba2 |
re PR other/79046 (g++ -print-file-name=plugin uses full version number in path)
PR other/79046 * configure: Regenerated. config/ * acx.m4 (GCC_BASE_VER): New m4 function. (ACX_TOOL_DIRS): Require GCC_BASE_VER, for --with-gcc-major-version-only use just major number from BASE-VER. gcc/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s). (gcc.o): Depend on $(BASEVER). * common.opt (dumpfullversion): New option. * gcc.c (driver_handle_option): Handle OPT_dumpfullversion. * doc/invoke.texi: Document -dumpfullversion. * doc/install.texi: Document --with-gcc-major-version-only. * configure: Regenerated. libatomic/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. libgomp/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. libgcc/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. libssp/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. liboffloadmic/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * aclocal.m4: Include ../config/acx.m4. * configure: Regenerated. * Makefile.in: Regenerated. libquadmath/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. libmpx/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. libada/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. lto-plugin/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. libitm/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. fixincludes/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. libcilkrts/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * aclocal.m4: Include ../config/acx.m4. * configure: Regenerated. * Makefile.in: Regenerated. libcc1/ * configure.ac: Add GCC_BASE_VER. For --with-gcc-major-version-only use just major number from BASE-VER. * configure: Regenerated. * Makefile.in: Regenerated. libobjc/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. libstdc++-v3/ * configure.ac: Add GCC_BASE_VER. * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * po/Makefile.in: Regenerated. * libsupc++/Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. * src/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. * include/Makefile.in: Regenerated. * doc/Makefile.in: Regenerated. * python/Makefile.in: Regenerated. * src/c++11/Makefile.in: Regenerated. * src/c++98/Makefile.in: Regenerated. * src/filesystem/Makefile.in: Regenerated. libvtv/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. libsanitizer/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * libbacktrace/Makefile.in: Regenerated. * interception/Makefile.in: Regenerated. * asan/Makefile.in: Regenerated. * ubsan/Makefile.in: Regenerated. * configure: Regenerated. * sanitizer_common/Makefile.in: Regenerated. * lsan/Makefile.in: Regenerated. * Makefile.in: Regenerated. * tsan/Makefile.in: Regenerated. libgfortran/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. From-SVN: r244521 |
||
Rainer Orth
|
1ec62aa9e1 |
Build libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts]
libstdc++-v3: PR go/78978 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove. * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of GLIBCXX_CHECK_ASSEMBLER_HWCAP. * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of HWCAP_FLAGS. * aclocal.m4: Regenerate. * configure: Regenerate. * Makefile.in, doc/Makefile.in, include/Makefile.in, libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in, src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in, src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate. config: PR go/78978 * hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro. From-SVN: r244162 |
||
Jonathan Wakely
|
c05986b936 |
Split <functional> into smaller pieces
* include/Makefile.am: Add <bits/refwrap.h> and <bits/std_function.h>. Order alphabetically. * include/Makefile.in: Regenerate. * include/bits/refwrap.h: New header. (_Maybe_get_result_type,_Weak_result_type_impl, _Weak_result_type) (_Reference_wrapper_base_impl, _Reference_wrapper_base) (reference_wrapper, ref, cref): Move here from <functional>. * include/bits/shared_ptr_base.h: Include <bits/refwrap.h> and <bits/stl_function.h> instead of <functional>. * include/bits/std_function.h: New header. (_Maybe_unary_or_binary_function, bad_function_call) (__is_location_invariant, _Nocopy_types, _Any_data) (_Simple_type_wrapper, _Function_base, _Function_handler, function): Move here from <functional>. * include/bits/unique_ptr.h: Include <bits/stl_function.h>. * include/std/functional: Include new headers and move components to them. * include/std/future: Include <bits/std_function.h> instead of <functional>. * include/std/mutex: Likewise. * include/std/regex: Likewise. * src/c++11/compatibility-thread-c++0x.cc: Include <functional>. * testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line. * testsuite/20_util/default_delete/void_neg.cc: Likewise. * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust dg-error lines. * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise. * testsuite/30_threads/packaged_task/49668.cc: Include <functional>. From-SVN: r241410 |
||
Jonathan Wakely
|
e347987da8 |
Fix libstdc++ versioned namespace build
PR libstdc++/68323 PR libstdc++/77794 * config/abi/pre/gnu-versioned-namespace.ver: Add exports for __cxa_thread_atexit and __gnu_cxx::__freeres. * include/Makefile.am: Add <experimental/bits/lfts_config.h> * include/Makefile.in: Regenerate. * include.bits/basic_string.h: Fix nesting of versioned namespaces. * include/bits/c++config: Declare versioned namespaces for literals. * include/bits/regex.h (basic_regex, match_results): Add workarounds for PR c++/59256. * include/bits/uniform_int_dist.h: Fix nesting of versioned namespace. * include/std/chrono: Likewise. * include/std/complex: Likewise. * include/std/string_view: Likewise. * include/std/variant: Likewise. Add workaround for PR c++/59256. * include/experimental/bits/fs_fwd.h: Declare versioned namespace. * include/experimental/bits/lfts_config.h: Declare versioned namespaces. * include/experimental/algorithm: Include <experimental/bits/lfts_config.h>. * include/experimental/any: Likewise. * include/experimental/bits/erase_if.h: Likewise. * include/experimental/chrono: Likewise. * include/experimental/functional: Likewise. * include/experimental/memory_resource: Likewise. * include/experimental/optional: Likewise. * include/experimental/propagate_const: Likewise. * include/experimental/random: Likewise. * include/experimental/ratio: Likewise. * include/experimental/system_error: Likewise. * include/experimental/tuple: Likewise. * include/experimental/type_traits: Likewise. * include/experimental/utility: Likewise. * include/experimental/string_view: Likewise. Fix nesting of versioned namespaces. * include/experimental/bits/string_view.tcc: Reopen inline namespace for non-inline function definitions. * testsuite/17_intro/using_namespace_std_exp_neg.cc: New test. * testsuite/20_util/duration/literals/range.cc: Adjust dg-error line. * testsuite/experimental/any/misc/any_cast_neg.cc: Likewise. * testsuite/experimental/propagate_const/assignment/move_neg.cc: Likewise. * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise. * testsuite/experimental/propagate_const/requirements2.cc: Likewise. * testsuite/experimental/propagate_const/requirements3.cc: Likewise. * testsuite/experimental/propagate_const/requirements4.cc: Likewise. * testsuite/experimental/propagate_const/requirements5.cc: Likewise. * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise. From-SVN: r240714 |
||
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 |
||
Alan Modra
|
6d49b790fd |
Disable .gnu.attributes tags in compatibility-ldbl.o
compatibility-ldbl.o is compiled with -mlong-double-64. When long double .gnu.attributes tags are checked by the linker, it complains about the mismatch between this file and others in libstdc++. * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST. * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo): Use LONG_DOUBLE_COMPAT_FLAGS. * Makefile.in: Regenerate. * configure: Regenerate. * doc/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * python/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * src/c++11/Makefile.in: Regenerate. * src/c++98/Makefile.in: Regenerate. * src/filesystem/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. From-SVN: r240602 |
||
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 |
||
Gleb Natapov
|
27abac2648 |
libstdc++/68297 avoid throw/catch in make_exception_ptr
2016-08-22 Gleb Natapov <gleb@scylladb.com> PR libstdc++/68297 * config/abi/pre/gnu-versioned-namespace.ver: Export __cxa_init_primary_exception and std::exception_ptr(void*). * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and export __cxa_init_primary_exception and std::exception_ptr(void*). * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * libsupc++/Makefile.am: Add new headers. * libsupc++/Makefile.in: Regenerate. * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ... * libsupc++/cxxabi_init_exception.h: New header. (__cxa_init_primary_exception): Declare. * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define. (__cxa_throw): Use __cxa_init_primary_exception. * libsupc++/exception (std::exception): Move to ... * libsupc++/exception.h: New header. * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add friend declaration. (__exception_ptr::__dest_thunk): New function template. (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Use __cxa_allocate_exception and __cxa_init_primary_exception to create exception_ptr. * libsupc++/typeinfo: Include bits/exception.h instead of exception. * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version. From-SVN: r239664 |
||
Tim Shen
|
197c757cb1 |
Implement <variant>
* include/Makefile.am: Add new file std/variant. * include/Makefile.in: Generated from Makefile.am. * include/bits/enable_special_members.h: Add a tag type to allow the construction in non-default constructor. * include/bits/uses_allocator.h: Add convenience traits to detect constructibility. * include/std/variant: Implement <variant>. * testsuite/20_util/variant/compile.cc: Compile-time tests. * testsuite/20_util/variant/run.cc: Runtime tests. From-SVN: r239590 |
||
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 |
||
Ville Voutilainen
|
ca8f2cb137 |
Implement std::string_view and P0254r2,
Integrating std::string_view and std::string. * include/Makefile.am: Add string_view and string_view.tcc to the exported headers. * include/Makefile.in: Likewise. * include/bits/basic_string.h: Include <string_view> in C++17 mode. (__sv_type): New. (basic_string(__sv_type, const _Alloc&)): Likewise. (operator=(__sv_type)): Likewise. (operator __sv_type()): Likewise. (operator+=(__sv_type)): Likewise. (append(__sv_type __sv)): Likewise. (append(__sv_type, size_type, size_type)): Likewise. (assign(__sv_type)): Likewise. (assign(__sv_type, size_type, size_type)): Likewise. (insert(size_type, __sv_type)): Likewise. (insert(size_type, __sv_type, size_type, size_type)): Likewise. (replace(size_type, size_type, __sv_type)): Likewise. (replace(size_type, size_type, __sv_type, size_type, size_type)): Likewise. (replace(const_iterator, const_iterator, __sv_type)): Likewise. (find(__sv_type, size_type)): Likewise. (rfind(__sv_type, size_type)): Likewise. (find_first_of(__sv_type, size_type)): Likewise. (find_last_of(__sv_type, size_type)): Likewise. (find_first_not_of(__sv_type, size_type)): Likewise. (find_last_not_of(__sv_type, size_type)): Likewise. (compare(__sv_type)): Likewise. (compare(size_type, size_type, __sv_type)): Likewise. (compare(size_type, size_type, __sv_type, size_type, size_type)): Likewise. * include/bits/string_view.tcc: New. * include/std/string_view: Likewise. * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise. * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc: Likewise. * testsuite/21_strings/basic_string/operations/compare/char/2.cc: Likewise. * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: Likewise. * testsuite/21_strings/basic_string/operations/find/char/5.cc: Likewise. * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: Likewise. * testsuite/21_strings/basic_string/operators/char/5.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/2.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/2.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/include.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/basic_string_view/range_access/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/typedefs.cc: Likewise. * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise. * testsuite/21_strings/basic_string_view/types/1.cc: Likewise. From-SVN: r238823 |
||
Ville Voutilainen
|
435e56fb52 |
Implement std::optional.
* include/Makefile.am: Add optional to exported headers. * include/Makefile.in: Likewise. * include/std/optional: New. * testsuite/20_util/optional/typedefs.cc: Likewise. * testsuite/20_util/optional/relops/2.cc: Likewise. * testsuite/20_util/optional/relops/3.cc: Likewise. * testsuite/20_util/optional/relops/4.cc: Likewise. * testsuite/20_util/optional/relops/5.cc: Likewise. * testsuite/20_util/optional/relops/1.cc: Likewise. * testsuite/20_util/optional/relops/6.cc: Likewise. * testsuite/20_util/optional/nullopt.cc: Likewise. * testsuite/20_util/optional/in_place.cc: Likewise. * testsuite/20_util/optional/make_optional.cc: Likewise. * testsuite/20_util/optional/assignment/2.cc: Likewise. * testsuite/20_util/optional/assignment/3.cc: Likewise. * testsuite/20_util/optional/assignment/4.cc: Likewise. * testsuite/20_util/optional/assignment/5.cc: Likewise. * testsuite/20_util/optional/assignment/1.cc: Likewise. * testsuite/20_util/optional/assignment/6.cc: Likewise. * testsuite/20_util/optional/cons/value_neg.cc: Likewise. * testsuite/20_util/optional/cons/default.cc: Likewise. * testsuite/20_util/optional/cons/move.cc: Likewise. * testsuite/20_util/optional/cons/value.cc: Likewise. * testsuite/20_util/optional/cons/copy.cc: Likewise. * testsuite/20_util/optional/requirements.cc: Likewise. * testsuite/20_util/optional/observers/2.cc: Likewise. * testsuite/20_util/optional/observers/3.cc: Likewise. * testsuite/20_util/optional/observers/4.cc: Likewise. * testsuite/20_util/optional/observers/5.cc: Likewise. * testsuite/20_util/optional/observers/1.cc: Likewise. * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise. * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise. * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise. * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise. * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise. * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise. * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise. * testsuite/20_util/optional/constexpr/in_place.cc: Likewise. * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise. * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise. * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise. * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise. * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise. * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise. * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise. * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise. * testsuite/20_util/optional/swap/1.cc: Likewise. From-SVN: r238197 |
||
Ville Voutilainen
|
52e8622199 |
Implement std::any.
* include/Makefile.am: Add any and c++17_warning.h to exported headers. * include/Makefile.in: Likewise. * include/std/any: New. * testsuite/20_util/any/assign/1.cc: Likewise. * testsuite/20_util/any/assign/2.cc: Likewise. * testsuite/20_util/any/assign/self.cc: Likewise. * testsuite/20_util/any/cons/1.cc: Likewise. * testsuite/20_util/any/cons/2.cc: Likewise. * testsuite/20_util/any/cons/aligned.cc: Likewise. * testsuite/20_util/any/cons/nontrivial.cc: Likewise. * testsuite/20_util/any/misc/any_cast.cc: Likewise. * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise. * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise. * testsuite/20_util/any/misc/swap.cc: Likewise. * testsuite/20_util/any/modifiers/1.cc: Likewise. * testsuite/20_util/any/observers/type.cc: Likewise. * testsuite/20_util/any/typedefs.cc: Likewise. From-SVN: r238061 |
||
Bernd Edlinger
|
bfd84e6ba5 |
Makefile.am (install-freestanding-headers): Add concept_check.h and move.h to the installed headers.
2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de> * include/Makefile.am (install-freestanding-headers): Add concept_check.h and move.h to the installed headers. * include/Makefile.in: Regenerated. * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for freestanding implementations. * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention that this macro has no effect for freestanding implementations. * doc/html/manual/using_macros.html: Likewise. From-SVN: r234414 |
||
Jonathan Wakely
|
2944621e2c |
Avoid including all of <random> in <algorithm>
PR libstdc++/69464 * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/bits/random.h (uniform_int_distribution): Move to bits/uniform_int_dist.h. * include/bits/random.tcc (uniform_int_distribution::operator(), uniform_int_distribution::__generate_impl): Likewise. * include/bits/uniform_int_dist.h: New header. * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include <bits/uniform_int_dist.h> instead of <random>. * testsuite/20_util/specialized_algorithms/uninitialized_copy/ move_iterators/1.cc: Include correct header for uninitialized_copy. * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/ move_iterators/1.cc: Likewise. * testsuite/25_algorithms/nth_element/58800.cc: Include correct header for vector. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines. From-SVN: r232798 |
||
Jonathan Wakely
|
96e19adabc |
Add C++-conforming wrappers for stdlib.h and math.h
PR libstdc++/14608 PR libstdc++/60401 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for --enable-cheaders=c_global configs. * include/Makefile.in: Regenerate. * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C test and allow inclusion from C files. * include/c_compatibility/stdlib.h: Likewise. Support freestanding. (at_quick_exit, quick_exit): Add using directives. * include/c_global/cmath: Use #include_next for math.h. * include/c_global/cstdlib: Use #include_next for stdlib.h. * testsuite/26_numerics/headers/cmath/14608.cc: New. * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc: Remove xfail for most targets. * testsuite/26_numerics/headers/cstdlib/60401.cc: New. From-SVN: r232586 |
||
Torvald Riegel
|
a04d5fc95d |
libstdc++: Make certain exceptions transaction_safe.
From-SVN: r232454 |
||
Edward Smith-Rowland
|
2be75957b8 |
Implement TR29124 C++ special Math Functions.
2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net> Jonathan Wakely <jwakely@redhat.com> Florian Goth <CaptainSifff@gmx.de> Implement TR29124 C++ special Math Functions. * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/bits/specfun.h: New. * include/c_global/cmath: Adjust for both tr1 and tr29124 maths. * include/tr1/bessel_function.tcc: Ditto. * include/tr1/beta_function.tcc: Ditto. * include/tr1/cmath: Ditto. * include/tr1/ell_integral.tcc: Ditto. * include/tr1/exp_integral.tcc: Ditto. * include/tr1/gamma.tcc: Ditto. * include/tr1/hypergeometric.tcc: Ditto. * include/tr1/legendre_function.tcc: Ditto. * include/tr1/modified_bessel_func.tcc: Ditto. * include/tr1/poly_hermite.tcc: Ditto. * include/tr1/poly_laguerre.tcc: Ditto. * include/tr1/riemann_zeta.tcc: Ditto. * include/tr1/special_function_util.h: Ditto. * testsuite/ext/special_functions/conf_hyperg: New. * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New. * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New. * testsuite/ext/special_functions/conf_hyperg/compile.cc: New. * testsuite/ext/special_functions/hyperg: New. * testsuite/ext/special_functions/hyperg/check_nan.cc: New. * testsuite/ext/special_functions/hyperg/check_value.cc: New. * testsuite/ext/special_functions/hyperg/compile.cc: New. * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory. * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New. * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New. * testsuite/special_functions/01_assoc_laguerre/compile.cc: New. * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New. * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New. * testsuite/special_functions/02_assoc_legendre/check_value.cc: New. * testsuite/special_functions/02_assoc_legendre/compile.cc: New. * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New. * testsuite/special_functions/03_beta/check_nan.cc: New. * testsuite/special_functions/03_beta/check_value.cc: New. * testsuite/special_functions/03_beta/compile.cc: New. * testsuite/special_functions/03_beta/compile_2.cc: New. * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New. * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New. * testsuite/special_functions/04_comp_ellint_1/compile.cc: New. * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New. * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New. * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New. * testsuite/special_functions/05_comp_ellint_2/compile.cc: New. * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New. * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New. * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New. * testsuite/special_functions/06_comp_ellint_3/compile.cc: New. * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New. * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New. * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New. * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New. * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New. * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New. * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New. * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New. * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New. * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New. * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New. * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New. * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New. * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New. * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New. * testsuite/special_functions/10_cyl_neumann/check_value.cc: New. * testsuite/special_functions/10_cyl_neumann/compile.cc: New. * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New. * testsuite/special_functions/11_ellint_1/check_nan.cc: New. * testsuite/special_functions/11_ellint_1/check_value.cc: New. * testsuite/special_functions/11_ellint_1/compile.cc: New. * testsuite/special_functions/11_ellint_1/compile_2.cc: New. * testsuite/special_functions/12_ellint_2/check_nan.cc: New. * testsuite/special_functions/12_ellint_2/check_value.cc: New. * testsuite/special_functions/12_ellint_2/compile.cc: New. * testsuite/special_functions/12_ellint_2/compile_2.cc: New. * testsuite/special_functions/13_ellint_3/check_nan.cc: New. * testsuite/special_functions/13_ellint_3/check_value.cc: New. * testsuite/special_functions/13_ellint_3/compile.cc: New. * testsuite/special_functions/13_ellint_3/compile_2.cc: New. * testsuite/special_functions/14_expint/check_nan.cc: New. * testsuite/special_functions/14_expint/check_value.cc: New. * testsuite/special_functions/14_expint/compile.cc: New. * testsuite/special_functions/14_expint/compile_2.cc: New. * testsuite/special_functions/15_hermite/check_nan.cc: New. * testsuite/special_functions/15_hermite/check_value.cc: New. * testsuite/special_functions/15_hermite/compile.cc: New. * testsuite/special_functions/15_hermite/compile_2.cc: New. * testsuite/special_functions/16_laguerre/check_nan.cc: New. * testsuite/special_functions/16_laguerre/check_value.cc: New. * testsuite/special_functions/16_laguerre/compile.cc: New. * testsuite/special_functions/16_laguerre/compile_2.cc: New. * testsuite/special_functions/17_legendre/check_nan.cc: New. * testsuite/special_functions/17_legendre/check_value.cc: New. * testsuite/special_functions/17_legendre/compile.cc: New. * testsuite/special_functions/17_legendre/compile_2.cc: New. * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New. * testsuite/special_functions/18_riemann_zeta/check_value.cc: New. * testsuite/special_functions/18_riemann_zeta/compile.cc: New. * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New. * testsuite/special_functions/19_sph_bessel/check_nan.cc: New. * testsuite/special_functions/19_sph_bessel/check_value.cc: New. * testsuite/special_functions/19_sph_bessel/compile.cc: New. * testsuite/special_functions/19_sph_bessel/compile_2.cc: New. * testsuite/special_functions/20_sph_legendre/check_nan.cc: New. * testsuite/special_functions/20_sph_legendre/check_value.cc: New. * testsuite/special_functions/20_sph_legendre/compile.cc: New. * testsuite/special_functions/20_sph_legendre/compile_2.cc: New. * testsuite/special_functions/21_sph_neumann/check_nan.cc: New. * testsuite/special_functions/21_sph_neumann/check_value.cc: New. * testsuite/special_functions/21_sph_neumann/compile.cc: New. * testsuite/special_functions/21_sph_neumann/compile_2.cc: New. * testsuite/util/specfun_testcase.h: New. * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases. * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New. Co-Authored-By: Florian Goth <CaptainSifff@gmx.de> Co-Authored-By: Jonathan Wakely <jwakely@redhat.com> From-SVN: r232377 |
||
Jonathan Wakely
|
0c3e5dd1e6 |
Rename bits/mutex.h to avoid clashing with glibc
* include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. * include/bits/mutex.h: Rename to bits/std_mutex.h. * include/std/condition_variable: Adjust include. * include/std/mutex: Likewise. From-SVN: r232101 |
||
Jonathan Wakely
|
5ae465c530 |
Define std::experimental::randint etc.
* include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/random: New. * testsuite/experimental/random/randint.cc: New. From-SVN: r230332 |
||
Fan You
|
930d560203 |
Implement std::experimental::shared_ptr with array support
2015-11-13 Fan You <youfan.noey@gmail.com> Jonathan Wakely <jwakely@redhat.com> * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/bits/shared_ptr.h: New. * include/experimental/memory: Include new header. * testsuite/experimental/memory/shared_ptr/assign/assign.cc: New. * testsuite/experimental/memory/shared_ptr/cast/cast.cc: New. * testsuite/experimental/memory/shared_ptr/comparison/comparison.cc: New. * testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc: New. * testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/dest/dest.cc: New. * testsuite/experimental/memory/shared_ptr/modifiers/reset.cc: New. * testsuite/experimental/memory/shared_ptr/modifiers/swap.cc: New. * testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc: New. * testsuite/experimental/memory/shared_ptr/observers/operators.cc: New. * testsuite/experimental/memory/shared_ptr/observers/owner_before.cc: New. * testsuite/experimental/memory/shared_ptr/observers/use_count.cc: New. Co-Authored-By: Jonathan Wakely <jwakely@redhat.com> From-SVN: r230300 |
||
Jonathan Wakely
|
8014404589 |
Define alias templates using polymorphic memory resources
* include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/memory_resource: Add feature-test macro. * include/experimental/regex: New. * include/experimental/deque: Add alias template using PMR. * include/experimental/forward_list: Likewise. * include/experimental/list: Likewise. * include/experimental/map: Likewise. * include/experimental/set: Likewise. * include/experimental/string: Likewise. * include/experimental/unordered_map: Likewise. * include/experimental/unordered_set: Likewise. * include/experimental/vector: Likewise. From-SVN: r230295 |
||
Fan You
|
bfeffbd1ae |
Implement C++ LFTSv1 polymorphic memory resources
2015-11-13 Fan You <youfan.noey@gmail.com> * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/bits/uses_allocator.h (__erased_type): Define. (__uses_allocator_helper): Check for __erased_type. * include/experimental/memory_resource: New. * include/experimental/utlity: New. * testsuite/experimental/type_erased_allocator/1.cc: New. * testsuite/experimental/type_erased_allocator/1_neg.cc: New. * testsuite/experimental/type_erased_allocator/2.cc: New. * testsuite/experimental/type_erased_allocator/uses_allocator.cc: New. From-SVN: r230294 |
||
Jonathan Wakely
|
ea4554eaea |
Add include/experimental/bits dir
From-SVN: r228645 |
||
Jonathan Wakely
|
f16081c2c6 |
Add portable timed_mutex and recursive_timed_mutex.
PR libstdc++/65704 * include/Makefile.am: Add <bits/mutex.h>. * include/Makefile.in: Regenerate. * include/bits/mutex.h (__mutex_base, mutex, lock_guard, unique_lock): New file containing types moved from <mutex>. * include/std/condition_variable: Include <bits/mutex.h> instead of <mutex>. * include/std/mutex (__mutex_base, mutex, lock_guard, unique_lock): Move to <bits/mutex.h>. * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Remove dg-require-gthreads-timed. * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/dest/ destructor_locked.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise. * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise. * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise. * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise. * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise. * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise. * testsuite/30_threads/timed_mutex/requirements/standard_layout.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise. * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise. * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise. * testsuite/30_threads/unique_lock/cons/5.cc: Likewise. * testsuite/30_threads/unique_lock/cons/6.cc: Likewise. * testsuite/30_threads/unique_lock/locking/3.cc: Likewise. * testsuite/30_threads/unique_lock/locking/4.cc: Likewise. From-SVN: r227490 |
||
Edward Smith-Rowland
|
20b5f0b3e6 |
Add C++11 header <cuchar>.
2015-09-04 Edward Smith-Rowland <3dw4rd@verizon.net> Jonathan Wakely <jwakely@redhat.com> * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Define. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac: Check for <uchar.h>. * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/c/cuchar: New. * include/c_compatibility/uchar.h: New. * include/c_global/cuchar: New. * include/c_std/cuchar: New. * include/precompiled/stdc++.h: Include <cuchar>. * testsuite/17_intro/headers/c++200x/stdc++.cc: Include <uchar.h>. * testsuite/17_intro/headers/c++200x/stdc++_multiple_inclusion.cc: Include <uchar.h>. Co-Authored-By: Jonathan Wakely <jwakely@redhat.com> From-SVN: r227488 |
||
Ville Voutilainen
|
9638eccd55 |
Implement std::experimental::fundamentals_v2::make_array and std::experimental::fundamentals_v2::to_array.
2015-08-13 Ville Voutilainen <ville.voutilainen@gmail.com> Implement std::experimental::fundamentals_v2::make_array and std::experimental::fundamentals_v2::to_array. * include/Makefile.am: Add array. * include/Makefile.in: Add array. * include/experimental/array: New. * testsuite/experimental/array/make_array.cc: Likewise. * testsuite/experimental/array/neg.cc: Likewise. * doc/html/manual/status.html: Mark make_array as Y. * doc/xml/manual/status_cxx2017.xml: Likewise. From-SVN: r226865 |
||
Michael Haubenwallner
|
74b7ec8c45 |
libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS
2015-07-24 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com> * fragment.am (AM_CPPFLAGS): Add CPPFLAGS. * Makefile.in: Regenerate. * doc/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * python/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * src/c++11/Makefile.in: Regenerate. * src/c++98/Makefile.in: Regenerate. * src/filesystem/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. From-SVN: r226138 |
||
Ville Voutilainen
|
e37e6813d5 |
Implement std::experimental::fundamentals_v2::propagate_const.
2015-07-03 Ville Voutilainen <ville.voutilainen@gmail.com> Implement std::experimental::fundamentals_v2::propagate_const. * include/Makefile.am: Add propagate_const. * include/Makefile.in: Regenerate. * include/experimental/propagate_const: New. * testsuite/experimental/propagate_const/assignment/copy.cc: Likewise. * testsuite/experimental/propagate_const/assignment/move.cc: Likewise. * testsuite/experimental/propagate_const/assignment/move_neg.cc: Likewise. * testsuite/experimental/propagate_const/cons/copy.cc: Likewise. * testsuite/experimental/propagate_const/cons/default.cc: Likewise. * testsuite/experimental/propagate_const/cons/move.cc: Likewise. * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise. * testsuite/experimental/propagate_const/hash/1.cc: Likewise. * testsuite/experimental/propagate_const/observers/1.cc: Likewise. * testsuite/experimental/propagate_const/relops/1.cc: Likewise. * testsuite/experimental/propagate_const/requirements1.cc: Likewise. * testsuite/experimental/propagate_const/requirements2.cc: Likewise. * testsuite/experimental/propagate_const/requirements3.cc: Likewise. * testsuite/experimental/propagate_const/requirements4.cc: Likewise. * testsuite/experimental/propagate_const/requirements5.cc: Likewise. * testsuite/experimental/propagate_const/swap/1.cc: Likewise. * testsuite/experimental/propagate_const/typedefs.cc: Likewise. From-SVN: r225379 |
||
François Dumont
|
24167c42e6 |
stl_iterator_base_types.h (_Iter_base): Limit definition to pre-C++11 mode.
2015-06-29 François Dumont <fdumont@gcc.gnu.org> * include/bits/stl_iterator_base_types.h (_Iter_base): Limit definition to pre-C++11 mode. * include/debug/functions.h (__gnu_debug::__valid_range, __gnu_debug::__base): Move... * include/debug/safe_iterator.h (__gnu_debug::_Sequence_traits): New. (__gnu_debug::__get_distance_from_begin): New. (__gnu_debug::__get_distance_to_end): New. (__gnu_debug::_Safe_iterator<>::_M_valid_range): Expose iterator range distance information. Add optional check_dereferenceable parameter, default true. (__gnu_debug::_Distance_precision, __gnu_debug::__get_distance): Move default definition... (__gnu_debug::__get_distance): New overload for _Safe_iterator. (__gnu_debug::__unsafe): Likewise. * include/debug/helper_functions.h: ...here. New. (__gnu_debug::__unsafe): New helper function to remove safe iterator layer. * include/debug/stl_iterator.h: New. Include latter. * include/bits/stl_iterator.h: Include latter in debug mode. * include/debug/stl_iterator.tcc: Adapt. * include/debug/safe_local_iterator.h (__gnu_debug::__get_distance): Add overload for _Safe_local_iterator. (__gnu_debug::__unsafe): Likewise. * include/debug/safe_local_iterator.tcc: Adapt. * include/debug/macros.h (__glibcxx_check_valid_range2): New. (__glibcxx_check_insert_range): Add _Dist parameter. (__glibcxx_check_insert_range_after): Likewise. (__glibcxx_check_string, __glibcxx_check_string_len): Implement using _GLIBCXX_DEBUG_PEDASSERT. * include/debug/deque (deque<>::assign): Remove iterator debug layer when possible. (deque<>::insert): Likewise. * include/debug/forward_list (__glibcxx_check_valid_fl_range): New. (forward_list<>::splice_after): Use latter. (forward_list<>::assign): Remove iterator debug layer when possible. (forward_list<>::insert_after): Likewise. (__gnu_debug::_Sequence_traits<>): Partial specialization. * include/debug/list (list<>::assign): Remove iterator debug layer when possible. (list<>::insert): Likewise. [__gnu_debug::_Sequence_traits<>]: Partial specialization pre C++11 ABI. * include/debug/map.h (map<>::insert): Remove iterator debug layer when possible. * include/debug/multimap.h (multimap<>::insert): Likewise. * include/debug/set.h (set<>::insert): Likewise. * include/debug/multiset.h (multiset<>::insert): Likewise. * include/debug/string (basic_string<>::append, basic_string<>::assign, basic_string<>::insert, basic_string<>::replace): Likewise. * include/debug/unordered_map (unordered_map<>::insert, unordered_multimap<>::insert): Likewise. * include/debug/unordered_set (unordered_set<>::insert, unordered_multiset<>insert): Likewise. * include/debug/vector (vector<>::assign, vector<>::insert): Likewise. * include/Makefile.am: Add new debug headers. * include/Makefile.in: Regenerate. From-SVN: r225143 |
||
François Dumont
|
adad2a7d90 |
2015-05-29 François Dumont fdumont@gcc.gnu.org>
* include/debug/debug.h (_GLIBCXX_DEBUG_ASSERT, _GLIBCXX_DEBUG_PEDASSERT, _GLIBCXX_DEBUG_ONLY): Move definition... * include/debug/assertions.h: ...here, new. * include/debug/formatter.h (_Error_formatter::_Is_iterator_value_type): New. (_Error_formatter::_Is_instance): New. (_Error_formatter::_Parameter): Make public and not friend anymore. (_Error_formatter::_Parameter::__instance): New _M_kind enum entry. (_Error_formatter::_Parameter::__iterator_value_type): New _M_kind enum entry. (_Error_formatter::_Parameter::_Type): New. (_Error_formatter::_Parameter::_Instance): New, inherit from latter. (union _Error_formatter::_Parameter::_M_variant): Reorganize. (_Parameter(_Iterator const&, const char*, _Is_iterator)): Make all overloads take iterator through a const reference. (_Parameter(const _Iterator&, const char*, _Is_iterator_value_type)): New. (_Parameter(const _Type&, const char*, _Is_instance)): New. (_Error_formatter::_M_print_type): Delete. (_Error_formatter::_M_iterator_value_type): New. (_Error_formatter::_M_instance): New. * include/Makefile.am: Add new above debug file. * include/Makefile.in: Regenerate. * include/debug/functions.h (__check_dereferenceable(const _Safe_iterator<>&), __valid_range(const _Safe_iterator<>&), __is_safe_random_iterator<_Safe_iterator<>>): Move... * include/debug/safe_iterator.h: ... here. Replace debug.h include with assertions.h. (__check_singular_aux): Move... * include/debug/safe_base.h: ... here. * include/debug/functions.h (__check_dereferenceable(const _Safe_local_iterator<>&), __valid_range(const _Safe_local_iterator<>&): Move... * include/debug/safe_local_iterator.h: ...here. * include/debug/safe_sequence.h: Replace debug.h with assertions.h. Remove _Safe_iterator declaration. * include/debug/safe_unordered_container.h: Replace debug.h with assertions.h. * include/debug/array: Replace safe_sequence.h include with formatter.h and macros.h. * include/debug/deque: Include functions.tcc. * include/debug/forward_list: Likewise. * include/debug/list: Likewise. * include/debug/string: Likewise. * include/debug/vector: Likewise. * include/bits/unique_ptr.h: Replace debug.h include with new assertions.h. * include/bits/stl_iterator_base_funcs.h: Likewise. * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust dg-error line number. * testsuite/23_containers/array/tuple_interface/ tuple_element_debug_neg.cc: Likewise. * src/c++11/debug.cc: Adapt. From-SVN: r223877 |
||
Michael Haubenwallner
|
6ef9367656 |
libstdc++: Bump to automake 1.11.6
2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com> * Makefile.in: Regenerated with automake-1.11.6. * aclocal.m4: Likewise. * configure: Likewise. * doc/Makefile.in: Likewise. * include/Makefile.in: Likewise. * libsupc++/Makefile.in: Likewise. * po/Makefile.in: Likewise. * python/Makefile.in: Likewise. * src/Makefile.in: Likewise. * src/c++11/Makefile.in: Likewise. * src/c++98/Makefile.in: Likewise. * src/filesystem/Makefile.in: Likewise. * testsuite/Makefile.in: Likewise. From-SVN: r223125 |
||
Jonathan Wakely
|
a623b6f011 |
iterator: New.
* include/experimental/iterator: New. Define ostream_joiner. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * testsuite/experimental/iterator/make_ostream_joiner.cc: New. * testsuite/experimental/iterator/ostream_joiner.cc: New. * testsuite/experimental/iterator/requirements.cc: New. * doc/xml/manual/status_cxx2017.xml: Update status. * doc/html/manual/status.html: Regenerate. From-SVN: r222727 |
||
Jonathan Wakely
|
6c0b8a537c |
numeric: New.
* include/experimental/numeric: New. Define gcd and lcm. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * testsuite/experimental/numeric/gcd.cc: New. * testsuite/experimental/numeric/lcm.cc: New. * doc/xml/manual/status_cxx2017.xml: Update status. * doc/html/manual/status.html: Regenerate. From-SVN: r222724 |
||
Ville Voutilainen
|
261b7e8af2 |
Implement observer_ptr.
2015-05-01 Ville Voutilainen <ville.voutilainen@gmail.com> Implement observer_ptr. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/memory: New. * testsuite/experimental/memory/observer_ptr/assignment/assign.cc: New. * testsuite/experimental/memory/observer_ptr/cons/cons.cc: New. * testsuite/experimental/memory/observer_ptr/hash/hash.cc: New. * testsuite/experimental/memory/observer_ptr/make_observer.cc: New. * testsuite/experimental/memory/observer_ptr/relops/relops.cc: New. * testsuite/experimental/memory/observer_ptr/requirements.cc: New. * testsuite/experimental/memory/observer_ptr/swap/swap.cc: New. * testsuite/experimental/memory/observer_ptr/typedefs.cc: New. From-SVN: r222706 |
||
Jonathan Wakely
|
0ca7ba9aa6 |
Implement N4100 File System TS
* acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Define. (GLIBCXX_CHECK_FILESYSTEM_DEPS): Define. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac: Enable filesystem TS and check its dependencies. * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/bits/locale_conv.h (__do_str_code_cvt, __str_codecvt_in, __str_codecvt_out): Move code conversion logic from wstring_convert into new global functions. (wstring_convert::to_bytes, wstring_convert::from_bytes): Use new functions. (wstring_convert::_M_conv): Remove. * include/bits/quoted_string.h (_Quoted_string): Split out of iomanip. * include/experimental/filesystem: New. * include/experimental/fs_dir.h: New. * include/experimental/fs_fwd.h: New. * include/experimental/fs_ops.h: New. * include/experimental/fs_path.h: New. * include/std/iomanip (_Quoted_string): Move to bits/quoted_string.h. * python/libstdcxx/v6/printers.py (StdExpPathPrinter): Add. * src/Makefile.am (SUBDIRS): Add filesystem. * src/Makefile.in: Regenerate. * src/filesystem/Makefile.am: New. * src/filesystem/Makefile.in: New. * src/filesystem/dir.cc: New. * src/filesystem/ops.cc: New. * src/filesystem/path.cc: New. * testsuite/experimental/filesystem/operations/absolute.cc: New. * testsuite/experimental/filesystem/operations/copy.cc: New. * testsuite/experimental/filesystem/operations/current_path.cc: New. * testsuite/experimental/filesystem/path/append/path.cc: New. * testsuite/experimental/filesystem/path/assign/assign.cc: New. * testsuite/experimental/filesystem/path/assign/copy.cc: New. * testsuite/experimental/filesystem/path/compare/compare.cc: New. * testsuite/experimental/filesystem/path/compare/path.cc: New. * testsuite/experimental/filesystem/path/compare/strings.cc: New. * testsuite/experimental/filesystem/path/concat/path.cc: New. * testsuite/experimental/filesystem/path/concat/strings.cc: New. * testsuite/experimental/filesystem/path/construct/copy.cc: New. * testsuite/experimental/filesystem/path/construct/default.cc: New. * testsuite/experimental/filesystem/path/construct/locale.cc: New. * testsuite/experimental/filesystem/path/construct/range.cc: New. * testsuite/experimental/filesystem/path/decompose/extension.cc: New. * testsuite/experimental/filesystem/path/decompose/filename.cc: New. * testsuite/experimental/filesystem/path/decompose/parent_path.cc: New. * testsuite/experimental/filesystem/path/decompose/relative_path.cc: New. * testsuite/experimental/filesystem/path/decompose/root_directory.cc: New. * testsuite/experimental/filesystem/path/decompose/root_name.cc: New. * testsuite/experimental/filesystem/path/decompose/root_path.cc: New. * testsuite/experimental/filesystem/path/decompose/stem.cc: New. * testsuite/experimental/filesystem/path/generic/generic_string.cc: New. * testsuite/experimental/filesystem/path/itr/traversal.cc: New. * testsuite/experimental/filesystem/path/modifiers/clear.cc: New. * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc: New. * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc: New. * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc: New. * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc: New. * testsuite/experimental/filesystem/path/modifiers/swap.cc: New. * testsuite/experimental/filesystem/path/nonmember/hash_value.cc: New. * testsuite/experimental/filesystem/path/query/empty.cc: New. * testsuite/experimental/filesystem/path/query/has_extension.cc: New. * testsuite/experimental/filesystem/path/query/has_filename.cc: New. * testsuite/experimental/filesystem/path/query/has_parent_path.cc: New. * testsuite/experimental/filesystem/path/query/has_relative_path.cc: New. * testsuite/experimental/filesystem/path/query/has_root_directory.cc: New. * testsuite/experimental/filesystem/path/query/has_root_name.cc: New. * testsuite/experimental/filesystem/path/query/has_root_path.cc: New. * testsuite/experimental/filesystem/path/query/has_stem.cc: New. * testsuite/experimental/filesystem/path/query/is_relative.cc: New. * testsuite/util/testsuite_fs.h: New. From-SVN: r222654 |
||
Edward Smith-Rowland
|
c0b12dad93 |
Add fundamentals TR container erasure.
2015-04-30 Edward Smith-Rowland <3dw4rd@verizon.net> Add fundamentals TR container erasure. * include/Makefile.am: Add new headers. * include/Makefile.in: Add new headers. * include/experimental/array: New. * include/experimental/deque: New. * include/experimental/erase_if.tcc: New. * include/experimental/forward_list: New. * include/experimental/list: New. * include/experimental/map: New. * include/experimental/set: New. * include/experimental/string: New. * include/experimental/unordered_map: New. * include/experimental/unordered_set: New. * include/experimental/vector: New. * testsuite/experimental/deque/erasure.cc: New. * testsuite/experimental/forward_list/erasure.cc: New. * testsuite/experimental/list/erasure.cc: New. * testsuite/experimental/map/erasure.cc: New. * testsuite/experimental/set/erasure.cc: New. * testsuite/experimental/string/erasure.cc: New. * testsuite/experimental/unordered_map/erasure.cc: New. * testsuite/experimental/unordered_set/erasure.cc: New. * testsuite/experimental/vector/erasure.cc: New. From-SVN: r222630 |
||
Jonathan Wakely
|
96d8c147aa |
locale_conv.h (wstring_convert, [...]): New.
* include/bits/locale_conv.h (wstring_convert, wbuffer_convert): New. * include/std/locale: Include new header. * include/Makefile.am: Add it. * include/Makefile.in: Regenerate. * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc: New. * testsuite/22_locale/conversions/string/1.cc: New. * testsuite/22_locale/conversions/string/2.cc: New. * testsuite/22_locale/conversions/string/requirements/typedefs.cc: New. * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc: New. From-SVN: r219780 |
||
Jonathan Wakely
|
28af1fb39d |
Implement C++11 <codecvt> header.
* config/abi/pre/gnu.ver: Export new symbols. * include/Makefile.am: Add codecvt. * include/Makefile.in: Regenerate. * include/std/codecvt: New header. * src/c++11/codecvt.cc (__codecvt_utf8_base, __codecvt_utf16_base, __codecvt_utf8_utf16_base): Define specializations. * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: New. * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc: New. * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc: New. From-SVN: r219779 |
||
Torvald Riegel
|
eae801bacc |
libstdc++: Optimize synchronization in std::future if futexes are available.
* src/c++11/futex.cc: New file. * include/bits/atomic_futex.h: New file. * include/std/future (__future_base::_State_baseV2): Use atomic_futex_unsigned instead of mutex+condvar. * src/c++11/futex.cc: Likewise. * include/Makefile.am: Add atomic_futex.h. * include/Makefile.in: Likewise. * src/c++11/Makefile.am: Add futex.cc. * src/c++11/Makefile.in: Likewise. From-SVN: r219770 |
||
Jonathan Wakely
|
34a2b7558b |
New std::string implementation.
* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI): Remove. (GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI, GLIBCXX_DEFAULT_ABI): Add. * configure.ac: Use new macros. * configure: Regenerate. * Makefile.in: Regenerate. * doc/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * include/Makefile.am: Set _GLIBCXX_USE_DUAL_ABI. * include/Makefile.in: Regenerate. * config/abi/pre/gnu.ver: Export symbols related to new std::string. Tighten old patterns to not match new symbols. * config/locale/generic/monetary_members.cc: Guard some definitions to not compile with new ABI. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/numeric_members.cc: Prevent double-free. * config/os/gnu-linux/ldbl-extra.ver: Add new __gnu_cxx_ldbl128 exports. Tighten old patterns. * doc/xml/manual/configure.xml: Document new configure options. * doc/html/*: Regenerate. * include/bits/basic_string.h (__cxx11::basic_string): Define new non-reference-counted implementation in inline namespace __cxx11. (stoi, stol, stoll, stof, stod, stold, to_string): Conditionally use inline namespace. (literals::string_literals::operator"): Conditionally use abi-tag. * include/bits/basic_string.tcc (__cxx11::basic_string): Define. * include/bits/c++config: Define _GLIBCXX_USE_DUAL_ABI and LDBL_CXX11_ABI namespace macros. * include/bits/locale_classes.h (locale::name()): Use abi_tag when new ABI is in use. (locale::_S_twinned_facets): New static member. (locale::facet::__shim): Declare new type. (locale::_facet::_M_sso_shim, locale::_facet::_M_cow_shim): New functions for creating shims. (locale::_Impl::_M_facet_unchecked): New member function for use during construction. (locale::_Impl::_M_init_extra): New member functions to create second version of some facets. (collate, collate_byname): Use abi_tag when new ABI is in use. * include/bits/locale_facets.h: Add _GLIBCXX_NUM_CXX11_FACETS macro. (numpunct, numpunct_byname): Use __cxx11 namespace. (num_get::_M_extract_float, num_get::_M_extract_int): Use abi_tag when new ABI is in use. (num_get::__do_get, num_put::__do_put): Do not declare long double compat functions for new ABI. * include/bits/locale_facets.tcc (num_get, num_put): Use abi_tag on definitions. (numpunct, numpunct_byname): Qualify explicit instantiations. * include/bits/locale_facets_nonio.h (time_get, time_get_byname, moneypunct, moneypunct_byname, money_get, money_put, messages, messages_byname): Use new inline namespace macros. (money_get::__do_get, money_put::__do_put): Do not declare long double compat functions for new ABI. * include/bits/locale_facets_nonio.tcc (money_get, money_put): Use new namespace macros. (money_get::__do_get, money_put::__do_put): Do not define for new ABI. * include/bits/localefwd.h (numpunct, numpunct_byname, collate, collate_byname, time_get, time_get_byname, moneypunct, moneypunct_byname, money_get, money_put, messages, messages_byname): Use new namespace macros. * include/bits/regex.h: Use inline namespace macros. * include/bits/stl_list.h (_List_base, list): Use inline namespace instead of abi-tag. * include/bits/stringfwd.h (basic_string): Use namespace macros. * include/std/iosfwd (basic_stringbuf, basic_istringstream, basic_ostringstream, basic_stringstream): Likewise. * include/std/sstream: Likewise. (basic_stringbuf::__xfer_bufptrs): Update streambuf pointers on move. * include/std/stdexcept (__cow_string, __sso_string): New types for indirectly using std::string with either ABI. (logic_error, runtime_error): Replace std::string member with __cow_string when new ABI is in use. Declare non-inline copy constructor and assignment operator. Declare const char* constructors. (domain_error, invalid_argument, length_error, out_of_range, range_error, overflow_error, underflow_error): Declare const char* constructors. * include/std/system_error (error_category): Replace with new definition in inline namespace _V2. (error_code::message, error_condition::message): Use abi_tag on functions returning std::string. * python/libstdcxx/v6/printers.py (StdStringPrinter): Handle new ABI. * src/c++11/Makefile.am: Add new files. * src/c++11/Makefile.in: Regenerate. * src/c++11/compatibility-c++0x.cc: Compile with old std::string ABI. Define old error_category symbols. * src/c++11/cow-fstream-inst.cc: New. Instantiate fstream members using old std::string ABI. * src/c++11/cow-locale_init.cc (locale::_Impl::_M_init_extra): Define. * src/c++11/cow-shim_facets.cc: Define shim facets using old ABI. * src/c++11/cow-sstream-inst.cc: Instantiate stringstreams using old std::string ABI. * src/c++11/cow-stdexcept.cc: Define new constructors and assignment operators. (__cow_string, error_category::_M_message): Define. * src/c++11/cow-string-inst.cc: Explicit instantiations using old std::string. Include src/c++98/istream-string.cc. * src/c++11/cow-wstring-inst.cc: Explicit instantiations using old std::wstring. * src/c++11/cxx11-hash_tr1.cc: Explicit instantiations using new string. * src/c++11/cxx11-ios_failure.cc: Add sanity check. * src/c++11/cxx11-locale-inst.cc: Instantiate facets using new std::string. * src/c++11/cxx11-shim_facets.cc: Define shim facets using new ABI. * src/c++11/cxx11-stdexcept.cc: Define constructors taking new std::string. * src/c++11/cxx11-wlocale-inst.cc: Instantiate facets using new std::wstring. * src/c++11/fstream-inst.cc: Compile with new ABI. * src/c++11/functexcept.cc: Compile with old ABI. * src/c++11/random.cc: Compile with new ABI. * src/c++11/sstream-inst.cc: Compile with new ABI. * src/c++11/string-inst.cc: Explicit instantiations for new string. * src/c++11/system_error.cc (__sso_string, error_category::_M_message): Define. * src/c++11/wstring-inst.cc: Compile with new ABI. * src/c++98/Makefile.am: Compile some host files twice for old and new std::string. Add new files. * src/c++98/Makefile.in: Regenerate. * src/c++98/compatibility-ldbl.cc: Compile with old ABI. * src/c++98/compatibility.cc: Likewise. * src/c++98/concept-inst.cc: Likewise. * src/c++98/hash_tr1.cc: Likewise. * src/c++98/istream-string.cc: New file defining functions that work with istream and std::string moved from ... * src/c++98/istream.cc: ... here. * src/c++98/cow-istream-string.cc: Recompile istream-string.cc with old ABI. * src/c++98/locale-inst.cc: Adjust facet instantiations to work for either ABI. * src/c++98/locale.cc (locale::_M_install_facet, locale::_M_install_cache): Handle twinned facets. * src/c++98/locale-facets.cc: Compile with old std::string ABI. (__verify_grouping): Define new overload and old std::string version. * src/c++98/locale_init.cc: Initialize twinned facets. * src/c++98/localename.cc: Likewise. * src/c++98/misc-inst.cc: Instantiate C++98-only std::string members. (__verify_grouping): Define new std::string version. * src/c++98/stdexcept.cc: Compile with old std::string ABI. * src/c++98/wlocale-inst.cc: Likewise. * testsuite/18_support/50594.cc: Adjust to work with SSO strings. * 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/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc: Likewise. * testsuite/21_strings/headers/string/synopsis.cc: Use inline namespace macros. * testsuite/23_containers/headers/list/synopsis.cc: Likewise. * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Set dg-options so correct exception type can be caught. * 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. * testsuite/27_io/ios_base/failure/cxx11.cc: Disable for old ABI. * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error. * testsuite/libstdc++-prettyprinters/libfundts.cc: Use old ABI. * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. * testsuite/util/exception/safety.h: Adjust member function types for new std::string. * testsuite/util/testsuite_abi.cc: Add new version and ignore __float128 symbols in __cxx11 namespace. From-SVN: r218964 |
||
Jonathan Wakely
|
be8de8946e |
std::shared_ptr atomic operations
PR libstdc++/57250 * config/abi/pre/gnu.ver: Export new symbols. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/bits/shared_ptr_atomic.h: Define atomic access functions. * include/std/memory: Include new header. * src/c++11/shared_ptr.cc (_Sp_locker): Define and use mutex pool. * testsuite/20_util/shared_ptr/atomic/1.cc: New. * testsuite/20_util/shared_ptr/atomic/2.cc: New. * testsuite/20_util/shared_ptr/atomic/3.cc: New. From-SVN: r217452 |
||
Jonathan Wakely
|
43e9f72225 |
Add <experimental/algorithm> and <experimental/functional>.
* doc/xml/manual/status_cxx2014.xml: Update TS status. * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/experimental/algorithm: New. * include/experimental/functional: New. * testsuite/experimental/algorithm/sample.cc: New. * testsuite/experimental/algorithm/search.cc: New. * testsuite/experimental/functional/not_fn.cc: New. * testsuite/experimental/functional/searchers.cc: New. * testsuite/experimental/functional/value.cc: New. * testsuite/experimental/feat-lib-fund.cc: Add headers and reorder. From-SVN: r216847 |
||
Ville Voutilainen
|
6b17203a20 |
Implement more Library Fundamentals v1 variable templates.
2014-10-21 Ville Voutilainen <ville.voutilainen@gmail.com> Implement more Library Fundamentals v1 variable templates. * include/Makefile.am: Add ratio, chrono and system_error. * include/Makefile.in: Regenerate. * include/experimental/chrono: New. * include/experimental/ratio: Likewise. * include/experimental/system_error: Likewise. * include/experimental/tuple (tuple_size_v): Likewise. * testsuite/experimental/chrono/value.cc: Likewise. * testsuite/experimental/ratio/value.cc: Likewise. * testsuite/experimental/system_error/value.cc: Likewise. * testsuite/experimental/tuple/tuple_size.cc: Likewise. From-SVN: r216513 |
||
Ville Voutilainen
|
37285913f3 |
Implement the Library Fundamentals v1 variable templates.
2014-10-17 Ville Voutilainen <ville.voutilainen@gmail.com> Implement the Library Fundamentals v1 variable templates. * include/Makefile.am: Add the new header. * include/Makefile.in: Regenerate. * include/experimental/type_traits: New. * testsuite/experimental/type_traits/value.cc: Likewise. From-SVN: r216397 |
||
Jonathan Wakely
|
375f837be1 |
re PR libstdc++/49561 ([C++0x] std::list::size complexity)
PR libstdc++/49561 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI): Define. * configure.ac: Use GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI. * configure: Regenerate. * include/Makefile.am (stamp-cxx11-abi): New target. (c++config.h): Set _GLIBCXX_USE_CXX11_ABI macro. * include/Makefile.in: Regenerate. * include/bits/c++config: Add _GLIBCXX_USE_CXX11_ABI placeholder and define _GLIBCXX_DEFAULT_ABI_TAG. * include/bits/list.tcc (list::emplace(const_iterator, _Args&...)): Increment size. (list::emplace(const_iterator, const value_type&)): Likewise. (list::merge(list&), list::merge(list&, _StrictWeakOrdering)): Adjust list sizes. * include/bits/stl_list.h (_List_base, list): Add ABI tag macro. (_List_base::_M_size): New data member in cxx11 ABI mode. (_List_base::_S_distance(_List_node_base*, _List_node_base*)): New function. (_List_base::_M_get_size(), _List_base::_M_set_size(size_t), _List_base::_M_inc_size(size_t), _List_base::_M_dec_size(size_t), _List_base::_M_distance, _List_base::_M_node_count): New functions for accessing list size correctly for the ABI mode. (_List_base::_List_base(_List_base&&)): Copy size and reset source. (_List_base::_M_init()): Initialize size member. (list::size()): Use _List_base::_M_node_count. (list::swap(list&)): Swap sizes. (list::splice(iterator, list&)): Update sizes. (list::splice(iterator, list&, iterator)): Likewise. (list::insert(iterator, const value_type&)): Update size. (list::insert(iterator, _Args&&...)): Likewise. (list::_M_erase(iterator)): Likewise. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Adjust. * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc: Adjust. * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc: Adjust. * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Adjust. * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust. From-SVN: r216094 |
||
Jonathan Wakely
|
22274fac01 |
Makefile.am: Add new header.
* include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/tuple: New * doc/xml/manual/status_cxx2014.xml: Update. * doc/html/manual/status.html: Regenerate. * testsuite/experimental/feat-lib-fund.cc: Test for new header. * testsuite/experimental/tuple/apply.cc: New. From-SVN: r215930 |