Commit Graph

8806 Commits

Author SHA1 Message Date
Jonathan Wakely ff37d74d22 Fix ambiguity with multiple enable_shared_from_this bases
PR libstdc++/56383
	* testsuite/20_util/enable_shared_from_this/56383.cc: New.
	* include/bits/shared_ptr_base.h (__enable_shared_from_this): Make
	friend declaration match previous declaration of
	__enable_shared_from_this_helper.
	* include/bits/shared_ptr.h (enable_shared_from_this): Likewise.

From-SVN: r231308
2015-12-04 20:44:22 +00:00
Jonathan Wakely 73b1f3519b Define path::_Cmpt after specializing path::__is_encoded_char
* include/experimental/bits/fs_path.h (path::_Cmpt): Move definition
	after path::__is_encoded_char explicit specializations.

From-SVN: r231307
2015-12-04 20:44:13 +00:00
Jason Merrill 5c61c612b3 * include/bits/c++config: Fix abi_tag in special modes.
From-SVN: r231283
2015-12-04 12:07:57 -05:00
Richard Biener 7a5558ee1c Update ChangeLog and version files for release
From-SVN: r231254
2015-12-04 10:45:05 +00:00
Jonathan Wakely 2394a58e2c Ensure another pretty-printer test uses C++98 mode
* testsuite/libstdc++-prettyprinters/debug.cc: Add -std=gnu++98 to
	dg-options and avoid use of uniform-init.

From-SVN: r230976
2015-11-26 16:12:31 +00:00
Jonathan Wakely def915dfd5 Ensure pretty-printer test uses C++98 mode
* testsuite/libstdc++-prettyprinters/simple.cc: Add -std=gnu++98 to
	dg-options and avoid use of uniform-init.

From-SVN: r230974
2015-11-26 16:07:50 +00:00
David Edelsohn 38d094dfd5 * configure: Regenerate.
From-SVN: r230960
2015-11-26 08:51:04 -05:00
Jonathan Wakely e46a69126f Extend valid values of iostream bitmask types
Backport from mainline
2015-11-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/56158
	* include/bits/ios_base.h (_Ios_Fmtflags, _Ios_Openmode, _Ios_Iostate):
	Define enumerators to ensure all values of type int are valid values
	of the enumeration type.
	* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Add new cases.
	* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
	* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.

From-SVN: r230884
2015-11-25 16:11:40 +00:00
Jonathan Wakely 7113230505 Backport shrink_to_fit() fix for -fno-exceptions
2015-09-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/allocator.h (__shrink_to_fit_aux<T, true>::_S_do_it):
	Do nothing if exceptions are disabled.
	* include/bits/basic_string.h (basic_string::shrink_to_fit): Likewise.

From-SVN: r230883
2015-11-25 16:11:33 +00:00
Rainer Orth 48575eb9bf Handle C++11 <math.h> overloads on Solaris 12
* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): New test.
	* configure.ac: Use it.
	* configure: Regenerate.
	* config.h.in: Regenerate.

	* include/c_global/cmath [__cplusplus >= 201103L]
	(std::fpclassify): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
	(std::isfinite): Likewise.
	(std::isinf): Likewise.
	(std::isnan): Likewise.
	(std::isnormal): Likewise.
	(std::signbit): Likewise.
	(std::isgreater): Likewise.
	(std::isgreaterequal): Likewise.
	(std::isless): Likewise.
	(std::islessequal): Likewise.
	(std::islessgreater): Likewise.
	(std::isunordered): Likewise.
	(std::acosh): Likewise.
	(std::asinh): Likewise.
	(std::atanh): Likewise.
	(std::cbrt): Likewise.
	(std::copysign): Likewise.
	(std::erf): Likewise.
	(std::erfc): Likewise.
	(std::exp2): Likewise.
	(std::expm1): Likewise.
	(std::fdim): Likewise.
	(std::fma): Likewise.
	(std::fmax): Likewise.
	(std::fmin): Likewise.
	(std::hypot): Likewise.
	(std::ilogb): Likewise.
	(std::lgamma): Likewise.
	(std::llrint): Likewise.
	(std::llround): Likewise.
	(std::log1p): Likewise.
	(std::log2): Likewise.
	(std::logb): Likewise.
	(std::lrint): Likewise.
	(std::lround): Likewise.
	(std::nearbyint): Likewise.
	(std::nextafter): Likewise.
	(std::nexttoward): Likewise.
	(std::remainder): Likewise.
	(std::remquo): Likewise.
	(std::rint): Likewise.
	(std::round): Likewise.
	(std::scalbln): Likewise.
	(std::scalbn): Likewise.
	(std::tgamma): Likewise.
	(std::trunc): Likewise.
	* include/tr1/cmath [_GLIBCXX_USE_C99_MATH_TR1] (std::tr1::acosh):
	Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
	(std::tr1::asinh): Likewise.
	(std::tr1::atanh): Likewise.
	(std::tr1::cbrt): Likewise.
	(std::tr1::copysign): Likewise.
	(std::tr1::erf): Likewise.
	(std::tr1::erfc): Likewise.
	(std::tr1::exp2): Likewise.
	(std::tr1::expm1): Likewise.
	(std::tr1::fabs): Likewise.
	(std::tr1::fdim): Likewise.
	(std::tr1::fma): Likewise.
	(std::tr1::fmax): Likewise.
	(std::tr1::fmin): Likewise.
	(std::tr1::hypot): Likewise.
	(std::tr1::ilogb): Likewise.
	(std::tr1::lgamma): Likewise.
	(std::tr1::llrint): Likewise.
	(std::tr1::llround): Likewise.
	(std::tr1::log1p): Likewise.
	(std::tr1::log2): Likewise.
	(std::tr1::logb): Likewise.
	(std::tr1::lrint): Likewise.
	(std::tr1::lround): Likewise.
	(std::tr1::nearbyint): Likewise.
	(std::tr1::nextafter): Likewise.
	(std::tr1::nexttoward): Likewise.
	(std::tr1::remainder): Likewise.
	(std::tr1::remquo): Likewise.
	(std::tr1::rint): Likewise.
	(std::tr1::scalbln): Likewise.
	(std::tr1::scalbn): Likewise.
	(std::tr1::tgamma): Likewise.
	(std::tr1::trunc): Likewise.
	(std::tr1::pow): Likewise.

	* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
	Restrict dg-xfail-if to *-*-solaris2.1[01]*.

From-SVN: r230808
2015-11-24 13:25:07 +00:00
Jan Kratochvil b146b57a9d re PR libstdc++/68448 (Python Pretty Printers get disabled on libstdc++ reload by GDB)
PR libstdc++/68448
	* python/hook.in: Call register_libstdcxx_printers.
	* python/libstdcxx/v6/__init__.py: Wrap it to
	register_libstdcxx_printers.

From-SVN: r230670
2015-11-20 19:10:12 +00:00
Doug Evans 0ec2e86cbd backport: re PR libstdc++/67440 (pretty-printing of a const set<foo> fails)
Backport from mainline:

	PR libstdc++/67440
	* python/libstdcxx/v6/printers.py (find_type): Handle "const" in
	type name.
	* testsuite/libstdc++-prettyprinters/debug.cc: Add test for
	const set<int>.
	* testsuite/libstdc++-prettyprinters/simple.cc: Ditto.
	* testsuite/libstdc++-prettyprinters/simple11.cc: Ditto.

From-SVN: r230444
2015-11-16 23:46:56 +00:00
Jonathan Wakely 4b63f4a3dd Fix return type of heterogeneous find for sets
PR libstdc++/68190
	* include/bits/stl_multiset.h (multiset::find): Fix return types.
	* include/bits/stl_set.h (set::find): Likewise.
	* testsuite/23_containers/map/operations/2.cc: Test find return types.
	* testsuite/23_containers/multimap/operations/2.cc: Likewise.
	* testsuite/23_containers/multiset/operations/2.cc: Likewise.
	* testsuite/23_containers/set/operations/2.cc: Likewise.

From-SVN: r230118
2015-11-10 18:08:50 +00:00
Jonathan Wakely 02adf63fd9 Backport PR libstdc++/65913 fix from mainline.
Handle alignment in __atomic_is_lock_free

gcc:

2015-09-17  Richard Henderson  <rth@redhat.com>

	PR libstdc++/65913
	* builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
	pointers that encode the alignment of the object.

libstdc++-v3:

2015-09-17  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/65913
	* include/bits/atomic_base.h (__atomic_base<_TTp>::is_lock_free(),
	__atomic_base<_PTp*>::is_lock_free()): Call the built-in with the
	immediate pointer value, not a variable.
	* include/std/atomic (atomic<T>::is_lock_free()): Likewise.
	* testsuite/29_atomics/atomic/65913.cc: New.

From-SVN: r228615
2015-10-08 17:54:23 +01:00
Jonathan Wakely 789a05c3be Backport Filesystem TS fixes from mainline.
PR libstdc++/67173
	PR libstdc++/67747
	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check _XOPEN_VERSION
	and PATH_MAX for _GLIBCXX_USE_REALPATH.  Remove _GLIBCXX_ prefix
	from HAVE_STRUCT_DIRENT_D_TYPE.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* include/bits/locale_conv.h [!_GLIBCXX_USE_WCHAR_T]
	(__do_str_codecvt, __str_codecvt_in, __str_codecvt_out): Enable.
	* include/experimental/fs_dir.h (operator==, operator==):
	Use owner_before instead of pointer equality.
	(directory_iterator(std::shared_ptr<_Dir>, error_code*)): Remove.
	* include/experimental/fs_path.h (operator==, operator==):
	* include/experimental/fs_path.h [!_GLIBCXX_USE_WCHAR_T]
	(path::wstring, path::generic_wstring): Disable.
	* src/filesystem/path.cc (path::_S_convert_loc)
	[!_GLIBCXX_USE_WCHAR_T]: Skip conversion.
	* src/filesystem/Makefile.am: Add cxx11_abi_sources.
	* src/filesystem/Makefile.in: Regenerate.
	* src/filesystem/cow-dir.cc: New.
	* src/filesystem/cow-ops.cc: New.
	* src/filesystem/cow-path.cc: New.
	* src/filesystem/dir.cc: Define macro for new ABI.
	(native_readdir): Remove.
	(_Dir::advance): Use readdir instead of native_readdir.
	(recursive_directory_iterator(const path&, directory_options,
	error_code*)): Use swap instead of reset.
	(ErrorCode): Remove.
	(_Dir::advance): Change ErrorCode parameter to error_code*, add
	directory_options parameter and check it on error.
	(opendir): Rename to open_dir to avoid clashing with macro. Change
	ErrorCode parameter to error_code*.
	(make_shared_dir): Remove.
	(native_readdir) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Don't set errno.
	(directory_iterator(std::shared_ptr<_Dir>, error_code*)): Remove.
	(directory_iterator(const path&, directory_options, error_code*)):
	Pass options to _Dir::advance and create non-end iterator on error.
	(recursive_directory_iterator(const path&, directory_options,
	error_code*)): Clear error_code on ignored error, create non-end
	iterator otherwise.
	(recursive_directory_iterator::increment): Pass _M_options to
	_Dir::advance.
	(recursive_directory_iterator::pop): Likewise.
	* src/filesystem/ops.cc: Define macro for new ABI.
	(canonical) [!_GLIBCXX_USE_REALPATH]: Add alternative implementation.
	(is_dot, is_dotdot): Define new helpers.
	(create_directories): Fix error handling.
	* src/filesystem/path.cc: Define macro for new ABI.
	(path::_S_convert_loc) [!_GLIBCXX_USE_WCHAR_T]: Skip conversion.
	* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
	New.
	* testsuite/experimental/filesystem/iterators/
	recursive_directory_iterator.cc: New.
	* testsuite/experimental/filesystem/operations/canonical.cc: New.
	* testsuite/experimental/filesystem/operations/create_directories.cc:
	New.
	* testsuite/experimental/filesystem/operations/exists.cc: Add more
	tests.
	* testsuite/experimental/filesystem/operations/absolute.cc: Add test
	variables.
	* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
	* testsuite/experimental/filesystem/operations/current_path.cc:
	Likewise.
	* testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
	* testsuite/experimental/filesystem/operations/status.cc: Likewise.
	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
	Likewise.
	* testsuite/experimental/filesystem/path/assign/assign.cc: Check for
	wchar_t support.
	* testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
	* testsuite/experimental/filesystem/path/construct/range.cc: Likewise.

From-SVN: r228584
2015-10-07 22:00:50 +01:00
Jonathan Wakely 924feef17a Backport PR libstdc++/65049 fix from mainline
PR libstdc++/65049
	* include/bits/char_traits.h (char_traits<char>::compare,
	char_traits<char>::find, char_traits<char>::move,
	char_traits<char>::copy, char_traits<char>::assign): Check for zero
	length.
	(char_traits<wchar_t>::compare, char_traits<wchar_t>::find,
	char_traits<wchar_t>::move, char_traits<wchar_t>::copy,
	char_traits<wchar_t>::assign): Likewise.
	(char_traits<char16_t>::move, char_traits<char16_t>::copy): Likewise.
	(char_traits<char32_t>::move, char_traits<char32_t>::copy): Likewise.
	* include/ext/pod_char_traits.h (char_traits<character<>>::move,
	char_traits<character<>>::copy): Likewise.
	* testsuite/21_strings/char_traits/requirements/char/65049.cc: New.
	* testsuite/21_strings/char_traits/requirements/char16_t/65049.cc:
	New.
	* testsuite/21_strings/char_traits/requirements/char32_t/65049.cc:
	New.
	* testsuite/21_strings/char_traits/requirements/wchar_t/65049.cc:
	New.

From-SVN: r228421
2015-10-02 21:08:17 +01:00
Jonathan Wakely 7131ee95d9 Backport PR libstdc++/67707 fix from mainline
PR libstdc++/67707
	* include/bits/stl_deque.h (_Deque_base::_M_move_impl): Initialize
	empty object.
	* testsuite/23_containers/deque/allocator/move.cc: Check moved-from
	deque.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.

From-SVN: r228420
2015-10-02 21:08:11 +01:00
Jonathan Wakely eae58c2785 Backport PR libstdc++/65142 fix from mainline
PR libstdc++/65142
	* src/c++11/random.cc (random_device::_M_getval()): Check read result
	and retry after short reads.

From-SVN: r228419
2015-10-02 21:08:04 +01:00
Jonathan Wakely 29bc903be6 shared_mutex (shared_timed_mutex::shared_timed_mutex): Replace throw with __throw_bad_alloc.
* include/std/shared_mutex (shared_timed_mutex::shared_timed_mutex):
	Replace throw with __throw_bad_alloc.

From-SVN: r227477
2015-09-03 23:12:00 +01:00
Jonathan Wakely 962cbb8e8a Make std::experimental::not_fn SFINAE-friendly.
PR libstdc++/66998
	* include/experimental/functional (_Not_fn): Add exception
	specifications and non-deduced return types.
	(not_fn): Add exception specification and wrap pointer-to-member.
	* testsuite/experimental/functional/not_fn.cc: Test in SFINAE context
	and test pointer-to-member.

From-SVN: r227455
2015-09-03 16:10:52 +01:00
Jonathan Wakely 1cb56a44c2 Backport libstdc++/67374 fix from mainline
2015-08-27  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/67374
	* include/bits/range_access.h (valarray, begin, end): Declare.
	* testsuite/26_numerics/valarray/range_access.cc: Test const
	overloads.
	* testsuite/26_numerics/valarray/range_access2.cc: New.

From-SVN: r227454
2015-09-03 16:10:42 +01:00
Jonathan Wakely 52b96de884 Backport atomic_futex.h warning fix from mainline
2015-07-24  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_futex.h [_GLIBCXX_HAVE_LINUX_FUTEX]
	(_M_load_and_test_until): Whitespace.
	(_M_load_and_test): Value-initialize the unused durations.
	(_M_load_when_equal): Add missing return value.

From-SVN: r227453
2015-09-03 16:10:37 +01:00
Jonathan Wakely ca00e4fa5f Backport PR libstdc++/66855 fix from mainline
2015-07-13  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/66855
	* src/c++11/codecvt.cc (__codecvt_utf8_utf16_base::do_in): Override
	endianness bit in mode.
	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: New.

From-SVN: r227452
2015-09-03 16:10:32 +01:00
Jonathan Wakely 76bbbb4dc7 Backport fix for PR libstdc++/62258 from mainline
2015-04-27  Dmitry Prokoptsev  <dprokoptsev@gmail.com>
	    Michael Hanselmann  <public@hansmi.ch>

	PR libstdc++/62258
	* libsupc++/eh_ptr.cc (rethrow_exception): Increment count of
	uncaught exceptions.
	* testsuite/18_support/exception_ptr/62258.cc: New.

From-SVN: r227451
2015-09-03 16:10:25 +01:00
Tim Shen b900331607 backport: re PR libstdc++/67362 (std::regex("((.)", std::regex_constants::basic) throws)
Backport from mainline
	2015-08-28  Tim Shen  <timshen@google.com>

	PR libstdc++/67362
	* include/bits/regex_scanner.tcc (_Scanner<>::_M_scan_normal):
	Always returns ordinary char token if the char isn't
	considered a special char.
	* testsuite/28_regex/regression.cc: New test file for collecting
	regression testcases from, typically, bugzilla.

From-SVN: r227290
2015-08-28 03:03:55 +00:00
Jonathan Wakely 8ceafd4e57 Makefile.am: Ensure gdb.py is installed for libstdc++ not libstdc++fs.
* python/Makefile.am: Ensure gdb.py is installed for libstdc++ not
	libstdc++fs.
	* python/Makefile.in: Regenerate.

From-SVN: r227029
2015-08-20 11:26:55 +01:00
Jonathan Wakely 526d05cc56 backport: acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS, [...]): Define.
Backport Filesystem TS from mainline
	* acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS,
	GLIBCXX_CHECK_FILESYSTEM_DEPS): Define.
	* configure.ac: Use them.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* include/Makefile.am: Add filesystem headers. Fix order of headers.
	* include/Makefile.in: Regenerate.
	* include/bits/locale_conv.h (__do_str_codecvt, __str_codecvt_in,
	__str_codecvt_out, wstring_convert): Refactor to move all conversion
	logic to non-member functions.
	* include/bits/quoted_string.h (_Quoted_string, operator<<,
	operator>>): Move from <iomanip> to new header.
	* 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, operator<<, operator>>): Move
	to <bits/quoted_string.h>.
	* libstdcxx/v6/printers.py (StdExpPathPrinter): Define.
	* scripts/testsuite_flags.in: Add filesystem dir to ldflags.
	* src/Makefile.am: Add filesystem sub-dir.
	* 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/operations/exists.cc: New.
	* testsuite/experimental/filesystem/operations/file_size.cc: New.
	* testsuite/experimental/filesystem/operations/status.cc: New.
	* testsuite/experimental/filesystem/operations/temp_directory_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/lib/dg-options.exp (dg-require-filesystem-ts): Define.
	* testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Define.
	* testsuite/util/testsuite_fs.h: New.

From-SVN: r226983
2015-08-18 18:58:22 +01:00
Jonathan Wakely 7872314f6a Makefile.in: Regenerate with automake-1.11.6.
* Makefile.in: Regenerate 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.
	* testsuite/Makefile.in: Likewise.

From-SVN: r226982
2015-08-18 18:58:06 +01:00
Tim Shen 451a8615e6 backport: re PR libstdc++/67015 ("^[a-z0-9][a-z0-9-]*$", std::regex::extended is miscompiled)
Backport from mainline
	2015-07-29  Tim Shen  <timshen@google.com>

	PR libstdc++/67015
	* include/bits/regex_compiler.h (_Compiler<>::_M_expression_term,
	_BracketMatcher<>::_M_add_collating_element): Change signature
	to make checking the and of bracket expression easier.
	* include/bits/regex_compiler.tcc (_Compiler<>::_M_expression_term):
	Treat '-' as a valid literal if it's at the end of bracket expression.
	* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
	New testcases.

From-SVN: r226337
2015-07-29 04:30:25 +00:00
Richard Biener 0c1af5b6fd Update ChangeLog and version files for release
From-SVN: r225864
2015-07-16 09:13:40 +00:00
Jonathan Wakely 64d0abddb3 acinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for --with-default-libstdcxx-abi
* acinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for
	--with-default-libstdcxx-abi
	* configure: Regenerate.
	* doc/xml/manual/configure.xml: Document valid arguments.

From-SVN: r225360
2015-07-02 23:54:50 +01:00
Jonathan Wakely f63fea42aa locale_conv.h (wstring_convert): Use __cxx11 inline namespace in new ABI.
* include/bits/locale_conv.h (wstring_convert): Use __cxx11 inline
	namespace in new ABI.
	(wstring_convert::_M_conv): Handle empty range.

From-SVN: r225359
2015-07-02 23:54:45 +01:00
Jonathan Wakely 8725f33487 stl_bvector.h (vector<bool>::vector()): Add noexcept.
* include/bits/stl_bvector.h (vector<bool>::vector()): Add noexcept.
	* include/bits/stl_map.h (map::map()): Likewise.
	* include/bits/stl_multimap.h (multimap::multimap()): Likewise.
	* include/bits/stl_multiset.h (multiset::multiset()): Likewise.
	* include/bits/stl_set.h (set::set()): Likewise.

From-SVN: r225026
2015-06-26 18:36:54 +01:00
Ramana Radhakrishnan 23fa65d6f3 re PR target/66200 (GCC for ARM / AArch64 doesn't define TARGET_RELAXED_ORDERING)
Fix PR target/66200

This applies the same fix for PR target/66200 for AArch64 on the GCC 5 branch
as on the 4.9 branch. On trunk we've fixed this differently by optimizing
the access to the guard variable using a load acquire style instruction.

2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/66200
	* g++.dg/abi/aarch64_guard1.C: Adjust.

2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/66200
	* configure.host (host_cpu): Add aarch64 case.
	* config/cpu/aarch64/atomic_word.h: New file.

From-SVN: r224890
2015-06-24 09:59:28 +00:00
Jonathan Wakely fe9b0182f0 backport: re PR libstdc++/65393 (std::thread shared_ptr inefficiency)
Backport from mainline
2015-06-16  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/65393
	* src/c++11/thread.cc (thread::_M_make_thread): Replace shared_ptr
	copies with moves.

From-SVN: r224742
2015-06-22 16:53:27 +01:00
Jonathan Wakely b6febe8092 backport: unordered_map.h (unordered_map, [...]): Add missing constructors.
Backport from mainline
2015-05-17  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/unordered_map.h (unordered_map, unordered_multimap): Add
	missing constructors.
	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
	Likewise.
	* include/debug/unordered_map (unordered_map, unordered_multimap): Add
	missing constructors.
	* include/debug/unordered_set (unordered_set, unordered_multiset):
	Likewise.
	* include/profile/unordered_map (unordered_map, unordered_multimap): Add
	missing constructors.
	* include/profile/unordered_set (unordered_set, unordered_multiset):
	Likewise.
	* testsuite/23_containers/unordered_map/cons/66055.cc: Add constructor
	invocations.
	* testsuite/23_containers/unordered_multimap/cons/66055.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/cons/66055.cc: Likewise.
	* testsuite/23_containers/unordered_set/cons/66055.cc: Likewise.

From-SVN: r224741
2015-06-22 16:53:23 +01:00
Jonathan Wakely 54b4994ba2 backport: re PR libstdc++/66055 (hash containers missing required reserving constructors)
Backport from mainline
2015-05-14  Nathan Myers  <ncm@cantrip.org>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/66055
	* include/std/unordered_map (unordered_map, unordered_multimap): Add
	missing constructors.
	* include/std/unordered_set (unordered_set, unordered_multiset):
	Likewise.
	* testsuite/23_containers/unordered_map/cons/66055.cc: New.
	* testsuite/23_containers/unordered_multimap/cons/66055.cc: New.
	* testsuite/23_containers/unordered_multiset/cons/66055.cc: New.
	* testsuite/23_containers/unordered_set/cons/66055.cc: New.

From-SVN: r224740
2015-06-22 16:53:14 +01:00
Jonathan Wakely 501e757fbe backport: re PR libstdc++/66030 ([5.1.0] std::codecvt_byname missing from libstdc++ DLL)
Backport from mainline
2015-06-09  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/66030
	* config/abi/pre/gnu.ver: Export codecvt_byname and codecvt symbols
	for mingw32.

From-SVN: r224478
2015-06-15 13:31:15 +01:00
Jonathan Wakely 718e94f192 re PR libstdc++/66464 (codecvt_utf16 max_length returning incorrect value)
PR libstdc++/66464
	* src/c++11/codecvt.cc (codecvt_utf16_base<char32_t>::do_max_length):
	Return 4 not 3.

From-SVN: r224417
2015-06-12 12:22:01 +01:00
Jonathan Wakely 11dc409bf3 backport: libstdc++.exp (libstdc++_init): Unset LANGUAGE environment variable.
Backported from mainline
2015-06-01  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/lib/libstdc++.exp (libstdc++_init): Unset LANGUAGE
	environment variable.

From-SVN: r224231
2015-06-08 15:19:15 +01:00
Jonathan Wakely 22d67dee6f re PR libstdc++/66354 ([UBSAN] stl_algobase.h:708:7: runtime error: null pointer passed as argument)
PR libstdc++/66354
	* include/bits/stl_algobase.h (__fill_a): Check length before calling
	memset.

	PR libstdc++/66327
	* include/bits/stl_algobase.h (__equal<true>::equal): Do not call
	memcmp for empty ranges.
	(__lexicographical_compare<true>::__lc): Likewise.

From-SVN: r224230
2015-06-08 15:19:10 +01:00
Jonathan Wakely dceb39ad4f backport: abi.xml: Document versioning for 5.1.0 release.
Backport from mainline:

2015-06-02  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/abi.xml: Document versioning for 5.1.0 release.
	* doc/xml/manual/evolution.xml: Fix typos.
	* doc/html/manual/*: Regenerate.

2015-04-21  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/configure.xml: Update descriptions of options
	affecting dual ABI and add cross-references.
	* doc/xml/manual/strings.xml: Clarify that string isn't COW now.
	* doc/xml/manual/using.xml: Document ABI transition.
	* doc/html/*: Regenerate.

2015-04-20  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/concurrency_extensions.xml: Update documentation
	on atomics.
	* doc/xml/manual/using.xml: Likewise. Improve markup.
	* doc/html/*: Regenerate.

From-SVN: r224226
2015-06-08 14:42:58 +01:00
Jonathan Wakely cc197376bc re PR libstdc++/66441 (wstring_convert not working correctly)
PR libstdc++/66441
	* testsuite/22_locale/conversions/string/66441.cc: New.
	* include/bits/locale_conv.h (__do_str_codecvt): Reserve enough space
	in the output string for BOM and complete result.

From-SVN: r224225
2015-06-08 14:42:51 +01:00
Jonathan Wakely 61da36930c re PR libstdc++/66417 (std::codecvt_utf16<char32_t, 0x10FFFF, std::codecvt_mode::generate_header> generates incorrect output)
PR libstdc++/66417
	* src/c++11/codecvt.cc (write_utf16_code_point): Use adjust_byte_order
	for single UTF-16 units.
	* testsuite/22_locale/codecvt/codecvt_utf16/66417.cc: New.

From-SVN: r224224
2015-06-08 14:42:46 +01:00
Renlin Li 2b82d78c37 [libstdc++-v3]Add _GLIBCXX_HAVE_LIMIT_FSIZE to guard 27_io/fpos/14775.cc.
libstdc++-v3/

2015-06-04  Renlin Li  <renlin.li@arm.com>

	Backported from mainline
	2015-06-02  Renlin Li  <renlin.li@arm.com>

	* testsuite/27_io/fpos/14775.cc: Add _GLIBCXX_HAVE_LIMIT_FSIZE check.

From-SVN: r224132
2015-06-04 16:05:29 +00:00
Jonathan Wakely 19932a8fe9 re PR libstdc++/65352 (array<T,0>::begin()/end() etc. forms a null reference and breaks on clang+ubsan)
PR libstdc++/65352
	* include/profile/array (array::data): Use _S_ptr.
	* include/debug/array (array::data): Likewise.

From-SVN: r223839
2015-05-28 17:14:26 +01:00
Jonathan Wakely 62a1e40981 re PR libstdc++/65352 (array<T,0>::begin()/end() etc. forms a null reference and breaks on clang+ubsan)
PR libstdc++/65352
	* include/std/array (__array_traits::_S_ptr): New function.
	(array::data): Use _S_ptr to avoid creating invalid reference.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
	dg-error line numbers.
	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
	likewise.

From-SVN: r223812
2015-05-28 13:33:41 +01:00
Jonathan Wakely d6819d26ad re PR libstdc++/66017 (Undefined behaviour in std::set<long long>)
PR libstdc++/66017
	* include/bits/stl_tree.h (_Rb_tree_node): Use __aligned_membuf.
	(_Rb_tree_iterator, _Rb_tree_const_iterator): Support construction
	from _Base_ptr.
	(_Rb_tree_const_iterator::_M_const_cast): Remove static_cast.
	(_Rb_tree::begin, _Rb_tree::end): Remove static_cast.
	* include/ext/aligned_buffer.h (__aligned_membuf): New type using
	alignment of _Tp as a member subobject, not as a complete object.
	* python/libstdcxx/v6/printers.py (StdRbtreeIteratorPrinter): Lookup
	_Link_type manually as it might not be in the debug info.

From-SVN: r223811
2015-05-28 13:33:36 +01:00
Jonathan Wakely 3f6131a416 backport: basic_string.h (basic_string::basic_string()): Make noexcept conditional on allocator (LWG 2455).
Backported from mainline
2015-05-13  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h (basic_string::basic_string()): Make
	noexcept conditional on allocator (LWG 2455).

From-SVN: r223810
2015-05-28 13:33:31 +01:00
Jonathan Wakely 27bd24cdc7 backport: alloc_traits.h (__alloc_rebind): Change parameter name.
Backported from mainline
2015-05-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/alloc_traits.h (__alloc_rebind): Change parameter name.

From-SVN: r223809
2015-05-28 13:33:26 +01:00
Doug Evans ab7bfa7b20 re PR libstdc++/65839 (xmethods need updating once gdb decides how to fix 18285)
PR libstdc++/65839
	* python/libstdcxx/v6/xmethods.py (get_bool_type): New function.
	Replace all lookups of "bool" with this.
	(get_std_size_type): New function.  Replace all lookups of std::size_t
	with this.
	(*Worker): New method get_result_type.
	(DequeWorkerBase.__init__): New arg val_type.  All callers updated.
	(ListWorkerBase.__init__): New arg val_type.  All callers updated.
	(UniquePtrGetWorker.__init__): New arg elem_type.  All callers updated.
	Delete setting of name, enabled.
	(UniquePtrDerefWorker.__init__): New arg elem_type.  All callers
	updated.  Delete setting of name.
	(UniquePtrMethodsMatcher): Rewrite for consistency with all other
	libstdc++ xmethod matchers.
	* testsuite/libstdc++-xmethods/array.cc: Add whatis tests.
	* testsuite/libstdc++-xmethods/associative-containers.cc: Ditto.
	* testsuite/libstdc++-xmethods/deque.cc: Ditto.
	* testsuite/libstdc++-xmethods/forwardlist.cc: Ditto.
	* testsuite/libstdc++-xmethods/list.cc: Ditto.
	* testsuite/libstdc++-xmethods/unique_ptr.cc: Ditto.
	* testsuite/libstdc++-xmethods/vector.cc: Ditto.

From-SVN: r223719
2015-05-26 21:28:42 +00:00
Doug Evans 70e0711d14 backport: Use consistent naming for value type attributes.
Backported from mainline
	2015-04-29  Doug Evans  <dje@google.com>

	Use consistent naming for value type attributes.
	* python/libstdcxx/v6/xmethods.py (ArrayWorkerBase): Rename _valtype
	to _val_type.
	(ArraySizeWorker, ArrayEmptyWorker): Ditto.
	(ArrayFrontWorker, ArrayBackWorker): Ditto.
	(ArrayAtWorker, ArraySubscriptWorker): Ditto.
	(DequeWorkerBase): Rename elemtype to val_type.
	(ForwardListWorkerBase): Rename _elem_type to _val_type.
	(ForwardListFrontWorker): Ditto.  And rename elem_address to
	val_address.
	(ForwardListMethodsMatcher): Rename elem_type to val_type.
	(VectorWorkerBase): Rename _elemtype to _val_type.

From-SVN: r223718
2015-05-26 21:12:16 +00:00
David Edelsohn fd28834bc4 re PR target/66224 (PowerPC _GLIBCXX_READ_MEM_BARRIER too weak)
PR target/66224
        * config/cpu/powerpc/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER):
        Don't use isync. Use lwsync if available.
        * configure.host (atomic_word_dir) [aix[56789]*]: Delete to use
        powerpc cpu definition.

From-SVN: r223554
2015-05-22 08:43:02 -04:00
Renlin Li 667cbcc15e [PATCH][libstc++v3]Add new dg-require-thread-fence directive.
libstdc++-v3/

2015-05-07  Renlin Li  <renlin.li@arm.com>

	Backported from mainline
	2015-04-22  Renlin Li  <renlin.li@arm.com>

	* testsuite/lib/dg-options.exp (dg-require-thread-fence): New.
	* testsuite/lib/libstdc++.exp (check_v3_target_thread_fence): New.
	* testsuite/29_atomics/atomic_flag/clear/1.cc: Use it.
	* testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc: Likewise.

From-SVN: r222875
2015-05-07 11:58:16 +00:00
Jakub Jelinek 81915c9a0a backport: re PR libstdc++/65883 (numeric_limits<unsigned __int128>::max() returns incorrect value)
Backported from mainline
	2015-04-28  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/65883
	* include/std/limits (numeric_limits): Add missing unsigned.

From-SVN: r222772
2015-05-04 20:20:10 +02:00
Jonathan Wakely d05c2d7b75 any (_Internal): Check for trivially-copyable instead of nothrow move constructible.
* include/experimental/any (_Internal): Check for trivially-copyable
	instead of nothrow move constructible.
	* testsuite/experimental/any/cons/nontrivial.cc: New.

From-SVN: r222723
2015-05-02 14:02:18 +01:00
Doug Evans 3593efb61b list.cc (_GLIBCXX_USE_CXX11_ABI): Define to zero.
* testsuite/libstdc++-xmethods/list.cc (_GLIBCXX_USE_CXX11_ABI):
	Define to zero.

From-SVN: r222586
2015-04-29 17:27:32 +00:00
Stephan Bergmann d6dfeb2a0f vector (_Safe_vector::operator=): Add missing returns.
2015-04-28  Stephan Bergmann  <sbergman@redhat.com>

	* include/debug/vector (_Safe_vector::operator=): Add missing returns.

From-SVN: r222538
2015-04-28 18:54:13 +01:00
GCC Administrator ea29f0882c Update ChangeLog and version files for release
From-SVN: r222316
2015-04-22 08:43:12 +00:00
Rainer Orth 54c2586f92 Ignore elfdump warnings in scripts/extract_symvers.pl
* scripts/extract_symvers.pl: Ignore elfdump error output.

From-SVN: r222118
2015-04-15 07:54:50 +00:00
Hans-Peter Nilsson 2a2f1cbfe7 Fix regression for libstdc++-v3/testsuite/29_atomics/atomic/62259.cc as...
Fix regression for libstdc++-v3/testsuite/29_atomics/atomic/62259.cc
as reported at <http://gcc.gnu.org/ml/gcc-patches/2015-04/msg00543.html>.

	* testsuite/29_atomics/atomic/62259.cc: Assert atomic
	alignment is larger-equal, not equal, to default alignment.

From-SVN: r222071
2015-04-14 00:35:03 +00:00
Jonathan Wakely 5ec4b22910 re PR libstdc++/65754 (missing exports for fstream constructors)
PR libstdc++/65754
	* config/abi/pre/gnu.ver: Export base object constructors for
	fstreams.
	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update
	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
	* config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
	* config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.
	* testsuite/27_io/basic_fstream/cons/base.cc: New.

From-SVN: r222060
2015-04-13 20:25:53 +01:00
Jonathan Wakely 5006378765 evolution.xml: Document changes since 4.5 release.
* doc/xml/manual/evolution.xml: Document changes since 4.5 release.
	* doc/html/*: Regenerate.

From-SVN: r222057
2015-04-13 18:21:48 +01:00
Uros Bizjak a57013168d baseline_symbols.txt: Update.
* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r222018
2015-04-12 08:40:39 +02:00
Andreas Schwab cb86fa2234 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
From-SVN: r221987
2015-04-10 20:07:09 +00:00
Andreas Schwab 2fb17d35e4 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
From-SVN: r221986
2015-04-10 20:05:48 +00:00
Jonathan Wakely cd80c79ce7 test.xml: Improve documentation on running a subset of tests.
* doc/xml/manual/test.xml: Improve documentation on running a subset
	of tests.
	* doc/html/manual/test.html: Regenerate.

From-SVN: r221985
2015-04-10 20:59:32 +01:00
Bill Schmidt 00778bed5f baseline_symbols.txt: Update for GCC 5.1 release.
2015-04-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update
	for GCC 5.1 release.
	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
	Likewise.

From-SVN: r221974
2015-04-10 13:43:09 +00:00
Jonathan Wakely c3d71b62c6 shared_mutex (shared_timed_mutex): Only use pthread_rwlock_t when the POSIX Timeouts option is supported.
* include/std/shared_mutex (shared_timed_mutex): Only use
	pthread_rwlock_t when the POSIX Timeouts option is supported.
	* testsuite/30_threads/shared_lock/cons/5.cc: Remove
	dg-require-gthreads-timed.
	* testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.

From-SVN: r221971
2015-04-10 10:00:00 +01:00
Jonathan Wakely 43b0e124e4 shared_mutex (shared_timed_mutex): Add comments to explain the logic in the non-pthread_rwlock_t version.
* include/std/shared_mutex (shared_timed_mutex): Add comments to
	explain the logic in the non-pthread_rwlock_t version.
	(_Mutex): Remove redundant type.
	(_M_n_readers): Rename to _S_max_readers.
	(_M_write_entered, _M_readers): New convenience functions.
	(lock, lock_shared, try_lock_shared, unlock_shared): Use convenience
	functions. Use predicates with condition variables. Simplify bitwise
	operations.
	(try_lock_for, try_shared_lock_for): Convert duration to time_point
	and call try_lock_until or try_shared_lock_until respectively.
	(try_lock_until, try_shared_lock_until): Wait on the condition
	variables until the specified time passes.
	(unlock): Add Debug Mode assertion.
	(unlock_shared): Add Debug Mode assertion.
	* testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: New.

From-SVN: r221970
2015-04-10 09:59:54 +01:00
H.J. Lu 1bf137444b Update x32 baseline_symbols.txt
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.

From-SVN: r221953
2015-04-09 08:41:38 -07:00
Jonathan Wakely 4cbaaa459e re PR libstdc++/65147 (alignment of std::atomic object is not correct)
2015-04-09  Jonathan Wakely  <jwakely@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	PR libstdc++/65147
	* include/bits/atomic_base.h (__atomic_base<_ITp>): Increase
	alignment.
	* include/std/atomic (atomic): For types with a power of two size set
	alignment to at least the size.
	* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
	* testsuite/29_atomics/atomic/65147.cc: New.
	* testsuite/29_atomics/atomic_integral/65147.cc: New.

Co-Authored-By: Richard Henderson <rth@redhat.com>

From-SVN: r221945
2015-04-09 12:15:44 +01:00
Rainer Orth 9a165842d1 Update Solaris baselines
* config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
	* config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
	* config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.

From-SVN: r221941
2015-04-09 07:05:41 +00:00
Jakub Jelinek 466df27b94 baseline_symbols.txt: Update.
* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r221933
2015-04-08 22:46:30 +02:00
Jonathan Wakely 744e26e71e re PR libstdc++/65630 (operator+ for new std::string not exported)
PR libstdc++/65630
	* config/abi/pre/gnu.ver: Export operator+ for new strings.
	* testsuite/21_strings/basic_string/operators/char/65630.cc: New.
	* testsuite/21_strings/basic_string/operators/wchar_t/65630.cc: New.

From-SVN: r221775
2015-03-30 18:52:37 +01:00
Tim Shen 2894311302 re PR libstdc++/65420 (Enumerators in std::regex_constants should be constexpr variables instead)
PR libstdc++/65420
	* include/bits/regex_constants.h: Use constexpr variables for flags.
	* testsuite/28_regex/constants/constexpr.cc: New testcase.

From-SVN: r221750
2015-03-28 04:17:12 +00:00
Jonathan Wakely 04f69fda7a re PR libstdc++/65499 (Missing "using namespace literals::chrono_literals" in std::chrono)
PR libstdc++/65499
	* include/std/chrono: Add using-directive for literals to std::chrono.
	* testsuite/20_util/duration/literals/65499.cc: New.

From-SVN: r221730
2015-03-27 12:45:10 +00:00
Jonathan Wakely d1a74a287e re PR libstdc++/58038 (std::this_thread::sleep_until can cause inifinite sleep)
PR libstdc++/58038
	PR libstdc++/60421
	* include/std/thread (this_thread::sleep_for): Check for negative
	durations.
	(this_thread::sleep_until): Check for times in the past.
	* testsuite/30_threads/this_thread/58038.cc: New.
	* testsuite/30_threads/this_thread/60421.cc: New.

From-SVN: r221708
2015-03-26 19:59:08 +00:00
Jonathan Wakely 4280698d09 re PR libstdc++/62259 (atomic class doesn't enforce required alignment on powerpc64)
PR libstdc++/62259
	PR libstdc++/65147
	* include/std/atomic (atomic<T>): Increase alignment for types with
	the same size as one of the integral types.
	* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
	* testsuite/29_atomics/atomic/62259.cc: New.

From-SVN: r221703
2015-03-26 19:27:02 +00:00
Richard Henderson 8be568519b re PR libstdc++/65033 (C++11 atomics: is_lock_free result does not always match the real lock-free property)
PR libstdc++/65033

 * include/bits/atomic_base.h (__atomic_base<T>::is_lock_free): Build
 a fake pointer indicating type alignment.
 (__atomic_base<T *>::is_lock_free): Likewise.
 * include/std/atomic (atomic<T>::is_lock_free): Likewise.

From-SVN: r221701
2015-03-26 11:31:11 -07:00
Alan Lawrence 28fda0c459 re PR libstdc++/33394 (Add test case for Thread race segfault in std::string::append with -O and -s)
PR libstdc++/33394
	* testsuite/21_strings/basic_string/pthread33394.cc: Use
	dg-additional-options.

From-SVN: r221666
2015-03-25 15:46:58 +00:00
Paolo Carlini ea348bbe59 re PR libstdc++/65543 (rvalue stream insertion and extraction operators incorrectly implemented)
2015-03-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/65543
	* include/std/istream (operator>>(basic_istream<>&&, _Tp&): Revert
	thinko in r150387.
	* include/std/ostream (operator<<(basic_ostream<>&&, const _Tp&):
	Likewise.
	* testsuite/27_io/rvalue_streams-2.cc: New.

From-SVN: r221655
2015-03-25 09:57:06 +00:00
Jonathan Wakely 9ccd0dba21 re PR libstdc++/33394 (Add test case for Thread race segfault in std::string::append with -O and -s)
PR libstdc++/33394
	* testsuite/21_strings/basic_string/pthread33394.cc: Add test.

# Auto-generated commit message above this line, original below.
	PR libstdc++/33394
	* testsuite/21_strings/basic_string/pthread33394.cc: Add test.

From-SVN: r221635
2015-03-24 14:47:32 +00:00
Jonathan Wakely 8dcf3d3c5d re PR libstdc++/64967 (Bootstrap fails due to errors in libstdc++ sources with `--enable-symvers=gnu-versioned-namespace')
PR libstdc++/64967
	* acinclude.m4: Disable dual ABI when gnu-versioned-namespace in use.
	* configure: Regenerate.
	* src/c++11/compatibility-c++0x.cc (error_category), generic_category,
	system_category): Use macros for versioned namespace.
	* src/c++11/futex.cc: Add missing end macro for versioned namespace.

From-SVN: r221600
2015-03-23 16:47:18 +00:00
James Greenhalgh c00acee464 [Patch Testsuite] Make all_attributes.cc in to (almost_)all_attributes.cc for ARM.
* testsuite/17_intro/headers/c++1998/all_attributes.cc: Disable
	test for unused for ARM.
	* testsuite/17_intro/headers/c++200x/all_attributes.cc: Likewise.
	* testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.

From-SVN: r221538
2015-03-20 17:20:12 +00:00
Jonathan Wakely df6d9c7f6a c++config (__gnu_cxx::__cxx11): Define new namespace.
* include/bits/c++config (__gnu_cxx::__cxx11): Define new namespace.
	* include/ext/codecvt_specializations.h (encoding_state,
	encoding_char_traits): Remove abi-tag and use inline namespace.
	* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line.

From-SVN: r221533
2015-03-20 13:26:55 +00:00
Jason Merrill 7cb7357360 re PR c++/65046 (-Wabi-tag doesn't warn about variables or function return types)
PR c++/65046
	Automatically propagate ABI tags to variables and functions
	from their (return) type.
	* class.c (check_tag): Handle variables and functions.
	(mark_or_check_attr_tags): Split out from find_abi_tags_r.
	(mark_or_check_tags): Likewise.
	(mark_abi_tags): Use it.  Rename from mark_type_abi_tags.
	(check_abi_tags): Add single argument overload for decls.
	Handle inheriting tags for decls.
	* mangle.c (write_mangled_name): Call it.
	(mangle_return_type_p): Split out from write_encoding.
	(unmangled_name_p): Split out from write_mangled_name.
	(write_mangled_name): Ignore abi_tag on namespace.
	* cp-tree.h (NAMESPACE_IS_INLINE): Replace NAMESPACE_ABI_TAG.
	* parser.c (cp_parser_namespace_definition): Set it.
	* name-lookup.c (handle_namespace_attrs): Use arguments. Warn
	about abi_tag attribute on non-inline namespace.
	* tree.c (check_abi_tag_args): Split out from handle_abi_tag_attribute.
	(handle_abi_tag_attribute): Allow tags on variables.

From-SVN: r221521
2015-03-19 15:31:48 -04:00
Jonathan Wakely 168ad5f5e3 re PR c++/65046 (-Wabi-tag doesn't warn about variables or function return types)
PR c++/65046
	* config/locale/gnu/messages_members.cc (Catalog_info, Catalogs,
	get_catalogs): Add abi-tag.
	* include/ext/codecvt_specializations.h (encoding_state,
	encoding_char_traits): Likewise.
	* src/c++11/cxx11-ios_failure.cc (io_error_category): Likewise.
	* src/c++11/cxx11-shim_facets.cc (__any_string::operator basic_string,
	numpunct_shim, collate_shim, time_get_shim, moneypunct_shim,
	money_get_shim, money_put_shim, messages_shim): Likewise.
	* src/c++11/future.cc (future_error_category::message): Likewise.
	* src/c++11/system_error.cc (generic_error_category::message,
	system_error_category::message): Likewise.
	(__sso_string): Disable -Wabi-tag warnings.

From-SVN: r221497
2015-03-18 18:08:29 +00:00
Jonathan Wakely 2a9611d03b re PR libstdc++/13631 (Problems in messages)
PR libstdc++/13631
	* config/locale/gnu/messages_members.cc (get_glibc_msg): Fix fallback
	implementation for old glibc. Fix whitespace.

From-SVN: r221494
2015-03-18 16:17:47 +00:00
Jonathan Wakely 5e0216f173 acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Check for pthread_rwlock_t.
2015-03-18  Jonathan Wakely  <jwakely@redhat.com>
	    Torvald Riegel  <triegel@redhat.com>

	* acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Check for pthread_rwlock_t.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* include/std/shared_mutex: Check _GLIBCXX_USE_PTHREAD_RWLOCK_T.
	(shared_timed_mutex::_M_rwlock): Use PTHREAD_RWLOCK_INITIALIZER.
	(shared_timed_mutex::lock_shared()): Retry on EAGAIN.
	(shared_timed_mutex::try_lock_shared_until()): Retry on EAGAIN and
	EDEADLK.

Co-Authored-By: Torvald Riegel <triegel@redhat.com>

From-SVN: r221484
2015-03-18 10:53:38 +00:00
Jonathan Wakely 1c6f4a147d 1.cc: Remove name of unused exception variable.
* testsuite/30_threads/shared_lock/modifiers/1.cc: Remove name of
	unused exception variable.
	* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
	* testsuite/30_threads/shared_lock/modifiers/2.cc: Remove duplicate
	test.
	* testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.

From-SVN: r221477
2015-03-17 16:36:32 +00:00
Jonathan Wakely 95f2fd9c5d nested_exception.h: Do not try to derive from final classes.
* libsupc++/nested_exception.h: Do not try to derive from final
	classes.
	* testsuite/18_support/nested_exception/throw_with_nested.cc: Test
	final class.

From-SVN: r221476
2015-03-17 14:24:55 +00:00
Jonathan Wakely e83a01c383 * include/experimental/system_error: Fix include guard.
From-SVN: r221417
2015-03-13 12:47:21 +00:00
Jonathan Wakely 9b78b1e730 acinclude.m4: Make --enable-libstdcxx-time=auto work for dragonfly.
* acinclude.m4: Make --enable-libstdcxx-time=auto work for dragonfly.
	* configure: Regenerate.

From-SVN: r221414
2015-03-13 10:49:08 +00:00
Renlin Li 04a1709359 [PATCH]Remove xfail for wrapped target
libstdc++-v3/

2015-03-12  Renlin Li  <renlin.li@arm.com>

	* testsuite/27_io/ios_base/sync_with_stdio/1.cc: Remove xfail for
	wrapped target.

From-SVN: r221393
2015-03-12 15:00:28 +00:00
Tim Shen 84839a5140 re PR libstdc++/64441 (A match_results returns an incorrect sub_match if the sub_match::matched is false)
PR libstdc++/64441
	* include/bits/regex.h (match_results<>::size,
	match_results<>::position, match_results<>::str,
	match_results<>::operator[], match_results<>::prefix,
	match_results<>::suffix, match_results<>::end,
	match_results<>::_M_resize, match_results<>::_M_unmatched_sub,
	match_results<>::_M_prefix, match_results<>::_M_suffix): Remove
	global __unmatched_sub. Add unmatched submatch as part of
	match_results.
	* include/bits/regex.tcc (__regex_algo_impl<>, regex_replace<>,
	regex_iterator<>::operator++): Adjust to use match_results::_M_prefix.
	* testsuite/28_regex/match_results/out_of_range_submatches.cc:
	New testcases.

From-SVN: r221330
2015-03-10 18:41:46 +00:00
Jonathan Wakely d2e0c00b8c re PR libstdc++/64467 (28_regex/traits/char/isctype.cc and wchar_t/isctype.cc)
PR libstdc++/64467
	* testsuite/28_regex/traits/char/isctype.cc: Don't test newline
	for newlib targets. Really fix mixed line-endings this time.

From-SVN: r221279
2015-03-09 12:47:51 +00:00
Jonathan Wakely 664e99eac4 future (future_error(error_code)): Construct base class with error_code's message.
* include/std/future (future_error(error_code)): Construct base
	class with error_code's message.
	* src/c++11/future.cc (future_error::what()): Do not call c_str() on
	temporary string.

From-SVN: r221236
2015-03-06 12:31:43 +00:00
Jonathan Wakely 9933260f2f locale_conv.h (wstring_convert::_M_conv): Handle noconv result.
* include/bits/locale_conv.h (wstring_convert::_M_conv): Handle
	noconv result.
	* testsuite/22_locale/conversions/string/2.cc: Also test UTF-8.
	* testsuite/22_locale/conversions/string/3.cc: Likewise, and UTF-16.

From-SVN: r221212
2015-03-05 13:36:21 +00:00
Jonathan Wakely b6584a72ac re PR libstdc++/64797 (22_locale/conversions/string/2.cc FAILs)
PR libstdc++/64797
	* include/bits/locale_conv.h (wstring_convert::_M_conv): Handle
	incomplete multibyte sequences correctly.
	* include/std/codecvt (codecvt_utf8, codecvt_utf16,
	codecvt_utf8_utf16): Limit _Maxcode to maximum Unicode code point.
	* src/c++11/codecvt.cc (invalid_mb_sequence, incomplete_mb_character):
	Define constants.
	(is_high_surrogate, is_low_surrogate, surrogate_pair_to_code_point):
	Define convenience functions.
	(read_utf8_code_point): Return relevant constant to distinguish
	incomplete characters from invalid sequences.
	(read_utf16_code_point): Likewise. Check for invalid sequences.
	(ucs4_in, utf16_in): Use incomplete_mb_character constant.
	(utf16_out): Check for invalid sequences.
	(utf16_span): Fix condition.
	(ucs2_out): Use is_high_surrogate.
	(ucs2_in): Use incomplete_mb_character constant and fix condition.
	* testsuite/22_locale/codecvt/char16_t.cc: Fix whitespace.
	* testsuite/22_locale/conversions/buffer/1.cc: New.
	* testsuite/22_locale/conversions/string/2.cc: Use char16_t and
	char32_t instead of wchar_t.
	* testsuite/22_locale/conversions/string/3.cc: New.

From-SVN: r221189
2015-03-04 17:19:55 +00:00