Commit Graph

20 Commits

Author SHA1 Message Date
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
2016-10-03 15:35:28 +01:00
Jakub Jelinek 818ab71a41 Update copyright years.
From-SVN: r232055
2016-01-04 15:30:50 +01:00
Jonathan Wakely 6b4f890601 Improve generated libstdc++ API docs
* doc/doxygen/user.cfg.in: Use EXTENSION_MAPPING tag. Add new headers
	to INPUT. Remove obsolete XML_SCHEMA and XML_DTD tags. Update
	PREDEFINED macros. Set BRIEF_MEMBER_DESC for man-pages.
	* include/backward/strstream: Correct @file comment.
	* include/bits/forward_list.h: Improve Doxygen comments.
	* include/bits/locale_facets_nonio.h: Likewise.
	* include/bits/mutex.h: Likewise.
	* include/bits/shared_ptr.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/debug/vector (_Safe_vector): Add @brief section to comment.
	* include/experimental/bits/fs_dir.h: Correct @file comment.
	* include/experimental/bits/fs_fwd.h: Likewise.
	* include/experimental/bits/fs_ops.h: Likewise.
	* include/experimental/bits/fs_path.h: Likewise.
	* include/experimental/bits/string_view.tcc: Likewise.
	* include/experimental/optional: Document experimental status.
	* include/experimental/string_view: Correct @file comment.
	* include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Reduce
	whitespace to avoid Doxygen bug.
	* include/std/bitset: Remove redundant @class Doxygen command. Add
	parentheses to avoid Doxygen bug.
	* include/std/mutex: Improve Doxygen comments.
	* include/tr2/dynamic_bitset: Add missing @param documentation.
	* scripts/run_doxygen: Rename man pages for std::experimental types.

From-SVN: r231512
2015-12-10 14:02:52 +00:00
Jonathan Wakely ea4554eaea Add include/experimental/bits dir
From-SVN: r228645
2015-10-09 12:11:54 +01:00
Jonathan Wakely 2f1e8e7c47 Enable lightweight checks with _GLIBCXX_ASSERTIONS.
* doc/xml/manual/using.xml (_GLIBCXX_ASSERTIONS): Document.
	* doc/html/manual/using_macros.html: Regenerate.
	* include/bits/c++config: Define _GLIBCXX_ASSERTIONS when
	_GLIBCXX_DEBUG is defined. Disable std::string extern templates when
	(_GLIBCXX_EXTERN_TEMPLATE, __glibcxx_assert): Depend on
	_GLIBCXX_ASSERTIONS instead of _GLIBCXX_DEBUG.
	* include/debug/debug.h [!_GLIBCXX_DEBUG]: Define
	__glibcxx_requires_non_empty_range and __glibcxx_requires_nonempty.
	* include/backward/auto_ptr.h (auto_ptr::operator*,
	auto_ptr::operator->): Replace _GLIBCXX_DEBUG_ASSERT with
	__glibcxx_assert.
	* include/bits/basic_string.h (basic_string::operator[],
	basic_string::front, basic_string::back, basic_string::pop_back):
	Likewise.
	* include/bits/random.h
	(uniform_int_distribution::param_type::param_type,
	uniform_real_distribution::param_type::param_type,
	normal_distribution::param_type::param_type,
	gamma_distribution::param_type::param_type,
	bernoulli_distribution::param_type::param_type,
	binomial_distribution::param_type::param_type,
	geometric_distribution::param_type::param_type,
	negative_binomial_distribution::param_type::param_type,
	poisson_distribution::param_type::param_type,
	exponential_distribution::param_type::param_type): Likewise.
	* include/bits/regex.h (match_results::operator[],
	match_results::prefix, match_results::suffix): Likewise.
	* include/bits/regex.tcc (format, regex_iterator::operator++):
	Likewise.
	* include/bits/regex_automaton.tcc (_StateSeq::_M_clone): Likewise.
	* include/bits/regex_compiler.tcc (_Compiler::_Compiler,
	_Compiler::_M_insert_character_class_matcher): Likewise.
	* include/bits/regex_executor.tcc (_Executor::_M_dfs): Likewise.
	* include/bits/regex_scanner.tcc (_Scanner::_M_advance,
	_Scanner::_M_scan_normal): Likewise.
	* include/bits/shared_ptr_base.h (__shared_ptr::_M_reset,
	__shared_ptr::operator*): Likewise.
	* include/bits/stl_iterator_base_funcs.h (__advance): Likewise.
	* include/bits/unique_ptr.h (unique_ptr::operator*,
	unique_ptr::operator[]): Likewise.
	* include/experimental/fs_path.h (path::path(string_type, _Type),
	path::iterator::operator++, path::iterator::operator--,
	path::iterator::operator*): Likewise.
	* include/experimental/string_view (basic_string_view::operator[],
	basic_string_view::front, basic_string_view::back,
	basic_string_view::remove_prefix): Likewise.
	* include/ext/random (beta_distribution::param_type::param_type,
	normal_mv_distribution::param_type::param_type,
	rice_distribution::param_type::param_type,
	pareto_distribution::param_type::param_type,
	k_distribution::param_type::param_type,
	arcsine_distribution::param_type::param_type,
	hoyt_distribution::param_type::param_type,
	triangular_distribution::param_type::param_type,
	von_mises_distribution::param_type::param_type,
	hypergeometric_distribution::param_type::param_type,
	logistic_distribution::param_type::param_type): Likewise.
	* include/ext/vstring.h (__versa_string::operator[]): Likewise.
	* include/std/complex (polar): Likewise.
	* include/std/mutex [!_GTHREAD_USE_MUTEX_TIMEDLOCK]
	(timed_mutex::~timed_mutex, timed_mutex::unlock,
	(recursive_timed_mutex::~timed_mutex, recursive_timed_mutex::unlock):
	Likewise.
	* include/std/shared_mutex [!PTHREAD_RWLOCK_INITIALIZER]
	(__shared_mutex_pthread::__shared_mutex_pthread,
	__shared_mutex_pthread::~__shared_mutex_pthread): Likewise.
	(__shared_mutex_pthread::lock, __shared_mutex_pthread::try_lock,
	__shared_mutex_pthread::unlock, __shared_mutex_pthread::lock_shared,
	__shared_mutex_pthread::try_lock_shared): Likewise.
	(__shared_mutex_cv::~__shared_mutex_cv, __shared_mutex_cv::unlock,
	__shared_mutex_cv::unlock_shared): Likewise.
	(shared_timed_mutex::try_lock_until,
	shared_timed_mutex::try_lock_shared_until): Likewise.
	* include/std/valarray (valarray::valarray(const _Tp*, size_t),
	valarray::operator=, valarray::sum, valarray::min, valarray::max,
	_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT, _DEFINE_BINARY_OPERATOR):
	Likewise.

From-SVN: r227595
2015-09-09 18:12:47 +01:00
Jakub Jelinek 5624e564d2 Update copyright years.
From-SVN: r219188
2015-01-05 13:33:28 +01:00
Jonathan Wakely 6554581713 Post-Urbana updates to Library Fundamentals v1.
* include/experimental/any (any): Remove allocator support and update
	feature-testing macro.
	* include/experimental/functional: Update feature-testing macro.
	* include/experimental/optional (optional::_M_get()): Add constexpr.
	(optional::operator*(), optional::value()): Overload and add
	ref-qualifiers. Update feature-testing macro.
	* include/experimental/string_view (basic_string_view::clear): Remove
	and update feature-testing macro.
	* testsuite/experimental/any/cons/3.cc: Remove.
	* testsuite/experimental/any/cons/4.cc: Remove.
	* testsuite/experimental/any/misc/any_cast.cc: Remove allocator tests.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
	* testsuite/experimental/string_view/capacity/1.cc: Don't test clear().

From-SVN: r218709
2014-12-13 20:44:06 +00:00
Jonathan Wakely c2513a1f6d any: Add feature-testing macro.
* include/experimental/any: Add feature-testing macro.
	* include/experimental/optional: Likewise.
	* include/experimental/string_view: Likewise.
	* include/experimental/tuple: Likewise.
	* include/experimental/type_traits: Likewise.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.

From-SVN: r216848
2014-10-29 18:22:05 +00:00
Ed Smith-Rowland 0a9f0ecb4c string_view: Make the literal operators constexpr like the ctors they call.
2014-07-25  Ed Smith-Rowland  <3dw4rd@verizon.net>

	* include/experimental/string_view: Make the literal operators
	constexpr like the ctors they call.

From-SVN: r213037
2014-07-25 03:47:46 +00:00
Jonathan Wakely 7ce56fc845 any (any_v1): Rename namespace to fundamentals_v1.
* include/experimental/any (any_v1): Rename namespace to
	fundamentals_v1. Change string returned by bad_any_cast::what().
	* include/experimental/optional (fundamentals_v1): Add namespace.
	* include/experimental/string_view (fundamentals_v1): Likewise.
	* testsuite/experimental/any/typedefs.cc: New.
	* testsuite/experimental/optional/typedefs.cc: New.
	* testsuite/experimental/string_view/typedefs.cc: New.

From-SVN: r211920
2014-06-23 23:12:31 +01:00
Jonathan Wakely fb3bc97798 any (any_cast): Combine duplicate doxygen comments.
* include/experimental/any (any_cast): Combine duplicate doxygen
	comments.
	* include/experimental/string_view (basic_string_view): Update
	doxygen comment.
	* include/std/bitset (bitset): Move to Doxygen 'utilities' group.
	* include/tr2/dynamic_bitset (_Bool2UChar): Remove unused templates.
	(dynamic_bitset): Improve Doxygen comments.
	* include/tr2/dynamic_bitset.tcc (operator>>): Improve Doxygen
	comment.

From-SVN: r211672
2014-06-14 21:43:07 +01:00
Jonathan Wakely 16545743c6 re PR libstdc++/61374 (string_view::operator string() is buggy)
PR libstdc++/61374
	* include/experimental/string_view (operator basic_string): Correct
	order of arguments.
	(to_string): Replace with member function.
	Add inline specifiers. Remove unused header. Remove _S_empty_rep and
	allow _M_str to be null.
	* testsuite/experimental/string_view/cons/char/1.cc: Adjust to new
	default constructor semantics.
	* testsuite/experimental/string_view/cons/wchar_t/1.cc: Likewise.
	* testsuite/experimental/string_view/operations/copy/char/1.cc: Fix
	copyright dates. Remove unused header.
	* testsuite/experimental/string_view/operations/copy/wchar_t/1.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/data/char/1.cc:
	Fix copyright dates. Adjust to new default constructor semantics.
	* testsuite/experimental/string_view/operations/data/wchar_t/1.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/to_string/1.cc: New.

From-SVN: r211113
2014-06-01 18:23:41 +01:00
Jonathan Wakely b9de84c92d * include/experimental/string_view: Fix inconsistent exception specs.
From-SVN: r209433
2014-04-15 20:05:57 +01:00
Ed Smith-Rowland bb393514d5 re PR libstdc++/59531 (string_view overrun in copy operation)
2014-01-24  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR libstdc++/59531
	* testsuite/experimental/string_view/operations/copy/char/1.cc: New.
	* testsuite/experimental/string_view/operations/copy/wchar_t/1.cc: New.

2014-01-24  Ed Smith-Rowland  <3dw4rd@verizon.net>
	    Peter A. Bigot <pab@pabigot.com>

	PR libstdc++/59531
	* include/experimental/string_view
	(copy(_CharT*, size_type, size_type) const): Correct throw string.
	Correct copy start location.

2014-01-24  Ed Smith-Rowland  <3dw4rd@verizon.net>
	    Peter A. Bigot <pab@pabigot.com>

	PR libstdc++/59530
	* include/experimental/string_view (operator[](size_type) const):
	Fix one-off index error in debug check.
	* testsuite/experimental/string_view/element_access/char/1.cc: Don't
	test basic_string_view at size().
	* testsuite/experimental/string_view/element_access/wchar_t/1.cc: Ditto.

2014-01-24  Ed Smith-Rowland  <3dw4rd@verizon.net>
	    Peter A. Bigot <pab@pabigot.com>

	PR libstdc++/59529
	* include/experimental/string_view
	(basic_string_view(const _CharT*, size_type)): Don't care if len == 0.
	* testsuite/experimental/string_view/operations/substr/char/1.cc:
	Comment out catch of out_of_range; No terminating null
	in basic_string_view.  Check begin == end.
	* testsuite/experimental/string_view/operations/substr/wchar_t/1.cc:
	Ditto.


Co-Authored-By: Peter A. Bigot <pab@pabigot.com>

From-SVN: r207060
2014-01-24 20:15:00 +00:00
François Dumont 9d0bb2ea71 create_testsuite_files: Add testsuite/experimental in the list of folders to search for tests.
2014-01-20  François Dumont  <fdumont@gcc.gnu.org>

	* scripts/create_testsuite_files: Add testsuite/experimental in
	the list of folders to search for tests.
	* include/experimental/string_view
	(basic_string_view<>::operator[]): Comment _GLIBCXX_DEBUG_ASSERT,
	incompatible with constexpr qualifier.
	(basic_string_view<>::front()): Likewise.
	(basic_string_view<>::back()): Likewise.
	* testsuite/experimental/string_view/element_access/wchar_t/2.cc:
	Merge dg-options directives into one.
	* testsuite/experimental/string_view/element_access/char/2.cc:
	Likewise. Remove invalid experimental namespace scope on
	string_view_type.

From-SVN: r206859
2014-01-20 21:15:13 +00:00
Richard Sandiford aa118a03c4 Update copyright years in libstdc++-v3/
From-SVN: r206301
2014-01-02 22:30:10 +00:00
Edward Smith-Rowland 32f9be169c string_view: Rep empty string with unit-length static constexpr string.
2013-11-21  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* include/experimental/string_view: Rep empty string with unit-length
	static constexpr string. Uncomment _GLIBCXX_VISIBILITY. Enforce
	invariant of no nullptr string pointer.
	* include/experimental/string_view.tcc: Ditto.
	* testsuite/experimental/string_view/cons/char/1.cc: data() for empty
	string_view is no longer nullptr.
	* testsuite/experimental/string_view/cons/wchar_t/1.cc: Ditto.
	* testsuite/experimental/string_view/operations/data/char/1.cc: Ditto.
	* testsuite/experimental/string_view/operations/data/wchar_t/1.cc:
	Ditto.

From-SVN: r205213
2013-11-21 12:30:37 +00:00
Paolo Carlini 660dca797a string_view (_S_max_size): Remove.
2013-11-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/experimental/string_view (_S_max_size): Remove.
	(basic_string_view<>::max_size): Adjust.
	* testsuite/experimental/string_view/capacity/1.cc: Clean-up.
	* testsuite/experimental/string_view/inserters/pod/10081-out.cc:
	Likewise.

From-SVN: r205033
2013-11-19 15:45:15 +00:00
Edward Smith-Rowland b032ec0d50 Changed reference to Ch21 Strings in comments in experimental/string_view*.
Forgot this in the main patch.  Sorry.

From-SVN: r204903
2013-11-16 18:03:40 +00:00
Edward Smith-Rowland 77cba5af77 Implement N3762 string_view: a non-owning reference to a string.
2013-11-16  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Implement N3762 string_view: a non-owning reference to a string.
	* include/Makefile.am: Add string_view and string_view.tcc.
	* include/Makefile.in: Regenerate.
	* include/experimental/string_view: Implement basic_string_view.
	* include/experimental/string_view.tcc: Implement basic_string_view.
	* testsuite/experimental/string_view/capacity/1.cc: New.
	* testsuite/experimental/string_view/cons/char/1.cc: New.
	* testsuite/experimental/string_view/cons/char/2.cc: New.
	* testsuite/experimental/string_view/cons/char/3.cc: New.
	* testsuite/experimental/string_view/cons/wchar_t/1.cc: New.
	* testsuite/experimental/string_view/cons/wchar_t/2.cc: New.
	* testsuite/experimental/string_view/cons/wchar_t/3.cc: New.
	* testsuite/experimental/string_view/element_access/char/1.cc: New.
	* testsuite/experimental/string_view/element_access/char/2.cc: New.
	* testsuite/experimental/string_view/element_access/char/empty.cc: New.
	* testsuite/experimental/string_view/element_access/char/front_back.cc:
	New.
	* testsuite/experimental/string_view/element_access/wchar_t/1.cc: New.
	* testsuite/experimental/string_view/element_access/wchar_t/2.cc: New.
	* testsuite/experimental/string_view/element_access/wchar_t/empty.cc:
	New.
	* testsuite/experimental/string_view/element_access/wchar_t/
	front_back.cc: New.
	* testsuite/experimental/string_view/include.cc: New.
	* testsuite/experimental/string_view/inserters/char/1.cc: New.
	* testsuite/experimental/string_view/inserters/char/2.cc: New.
	* testsuite/experimental/string_view/inserters/char/3.cc: New.
	* testsuite/experimental/string_view/inserters/pod/10081-out.cc: New.
	* testsuite/experimental/string_view/inserters/wchar_t/1.cc: New.
	* testsuite/experimental/string_view/inserters/wchar_t/2.cc: New.
	* testsuite/experimental/string_view/inserters/wchar_t/3.cc: New.
	* testsuite/experimental/string_view/literals/types.cc: New.
	* testsuite/experimental/string_view/literals/values.cc: New.
	* testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc:
	New.
	* testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/
	1.cc: New.
	* testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc:
	New.
	* testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/
	1.cc: New.
	* testsuite/experimental/string_view/operations/compare/char/1.cc: New.
	* testsuite/experimental/string_view/operations/compare/char/13650.cc:
	New.
	* testsuite/experimental/string_view/operations/compare/wchar_t/1.cc:
	New.
	* testsuite/experimental/string_view/operations/compare/wchar_t/
	13650.cc: New.
	* testsuite/experimental/string_view/operations/data/char/1.cc: New.
	* testsuite/experimental/string_view/operations/data/wchar_t/1.cc: New.
	* testsuite/experimental/string_view/operations/find/char/1.cc: New.
	* testsuite/experimental/string_view/operations/find/char/2.cc: New.
	* testsuite/experimental/string_view/operations/find/char/3.cc: New.
	* testsuite/experimental/string_view/operations/find/char/4.cc: New.
	* testsuite/experimental/string_view/operations/find/wchar_t/1.cc: New.
	* testsuite/experimental/string_view/operations/find/wchar_t/2.cc: New.
	* testsuite/experimental/string_view/operations/find/wchar_t/3.cc: New.
	* testsuite/experimental/string_view/operations/find/wchar_t/4.cc: New.
	* testsuite/experimental/string_view/operations/rfind/char/1.cc: New.
	* testsuite/experimental/string_view/operations/rfind/char/2.cc: New.
	* testsuite/experimental/string_view/operations/rfind/char/3.cc: New.
	* testsuite/experimental/string_view/operations/rfind/wchar_t/1.cc: New.
	* testsuite/experimental/string_view/operations/rfind/wchar_t/2.cc: New.
	* testsuite/experimental/string_view/operations/rfind/wchar_t/3.cc: New.
	* testsuite/experimental/string_view/operations/substr/char/1.cc: New.
	* testsuite/experimental/string_view/operations/substr/wchar_t/1.cc:
	New.
	* testsuite/experimental/string_view/operators/char/2.cc: New.
	* testsuite/experimental/string_view/operators/wchar_t/2.cc: New.
	* testsuite/experimental/string_view/range_access/char/1.cc: New.
	* testsuite/experimental/string_view/range_access/wchar_t/1.cc: New.
	* testsuite/experimental/string_view/requirements/
	explicit_instantiation/1.cc: New.
	* testsuite/experimental/string_view/requirements/
	explicit_instantiation/char/1.cc: New.
	* testsuite/experimental/string_view/requirements/
	explicit_instantiation/char16_t/1.cc: New.
	* testsuite/experimental/string_view/requirements/
	explicit_instantiation/char32_t/1.cc: New.
	* testsuite/experimental/string_view/requirements/
	explicit_instantiation/wchar_t/1.cc: New.
	* testsuite/experimental/string_view/requirements/typedefs.cc: New.
	* testsuite/experimental/string_view/types/1.cc: New.

From-SVN: r204902
2013-11-16 17:44:48 +00:00