Commit Graph

688 Commits

Author SHA1 Message Date
Benjamin Kosnik
a9ba8ba56c move.h (move_if_noexcept): Mark constexpr.
2012-10-17  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/move.h (move_if_noexcept): Mark constexpr.
	* include/std/array (front, back): Same.
	* include/std/chrono: Add comment.
	* include/std/tuple (__tuple_compare): Mark __eq, __less constexpr.
	(operator ==, <, >, !=, <=, >=): Same.
	* testsuite/20_util/forward/c_neg.cc: Adjust line numbers.
	* testsuite/20_util/forward/f_neg.cc: Same.
	* testsuite/20_util/move_if_noexcept/constexpr.cc: New.
	* testsuite/20_util/tuple/comparison_operators/constexpr.cc: New.
	* testsuite/20_util/tuple/creation_functions/constexpr.cc: Add.
	* testsuite/23_containers/array/element_access/
	constexpr_element_access.cc: Same.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
	line numbers.
	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
	Same.

	* testsuite/20_util/tuple/comparison_operators/35480_neg.cc:
          Temporarily add dg-excess-errors.

From-SVN: r192556
2012-10-18 08:36:06 +00:00
Paolo Carlini
fe4e4e3bf4 type_traits (__do_common_type_impl): Revert for now LWG 2141-related change.
2012-10-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/type_traits (__do_common_type_impl): Revert for now
	LWG 2141-related change.
	* testsuite/20_util/common_type/requirements/typedefs-1.cc: Likewise.
	* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
	Adjust.

From-SVN: r192308
2012-10-10 12:02:05 +00:00
Daniel Krugler
b3618b7167 type_traits (common_time): Provide "SFINAE-friendly" implementation.
2012-10-09  Daniel Krugler  <daniel.kruegler@googlemail.com>

	* include/std/type_traits (common_time): Provide "SFINAE-friendly"
	implementation.
	(__success_type, __failure_type): Fix.
	* include/std/chrono (common_type): Likewise for the chrono::time_point
	specialization.
	* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc: New.
	* testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
	Likewise.
	* testsuite/20_util/duration/requirements/sfinae_friendly_1.cc:
	Likewise.
	* testsuite/20_util/common_type/requirements/typedefs-1.cc: Adjust wrt
	LWG 2141.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
	dg-error line numbers.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.

	* testsuite/20_util/result_of/sfinae_friendly_1.cc: Trivial stylistic
	tweaks.
	* testsuite/20_util/result_of/sfinae_friendly_2.cc: Likewise.

From-SVN: r192276
2012-10-09 22:31:44 +00:00
Paolo Carlini
90f9c94e02 re PR libstdc++/53248 (std::array<T,0> doesn't work when T is not default-constructible)
2012-10-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/53248
	* include/std/array (__array_traits<>): Add.
	(array<>): Allow for zero-size arrays of non default-constructible
	elements.
	* testsuite/23_containers/array/requirements/
	non_default_constructible.cc: New.
	* testsuite/23_containers/array/requirements/zero_sized_arrays.cc:
	Adjust.
	* 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: r192056
2012-10-04 00:02:29 +00:00
Jonathan Wakely
1504e3e1c4 re PR other/53889 (Gthreads doesn't support destroying recursive mutexes)
libgcc:

	PR other/53889
	* gthr.h (__gthread_recursive_mutex_destroy): Document new required
	function.
	* gthr-posix.h (__gthread_recursive_mutex_destroy): Define.
	* gthr-single.h (__gthread_recursive_mutex_destroy): Likewise.
	* config/gthr-rtems.h (__gthread_recursive_mutex_destroy): Likewise.
	* config/gthr-vxworks.h (__gthread_recursive_mutex_destroy): Likewise.
	* config/i386/gthr-win32.h (__gthread_recursive_mutex_destroy):
	Likewise.
	* config/mips/gthr-mipssde.h (__gthread_recursive_mutex_destroy):
	Likewise.
	* config/pa/gthr-dce.h (__gthread_recursive_mutex_destroy): Likewise.
	* config/s390/gthr-tpf.h (__gthread_recursive_mutex_destroy): Likewise.

libstdc++-v3:

	PR other/53889
	* include/std/mutex (__recursive_mutex_base::~__recursive_mutex_base):
	Use __gthread_recursive_mutex_destroy.
	(__recursive_mutex_base::_S_destroy): Remove.
	(__recursive_mutex_base::_S_destroy_win32): Likewise.
	* include/ext/concurrence.h (__recursive_mutex::~__recursive_mutex):
	Use __gthread_recursive_mutex_destroy.
	(__recursive_mutex::_S_destroy): Remove.
	(__recursive_mutex::_S_destroy_win32): Likewise.

From-SVN: r192002
2012-10-02 21:22:32 +01:00
Daniel Krugler
83ddb39f04 type_traits (result_of): Provide "SFINAE-friendly" (see N3436) implementation.
2012-10-01  Daniel Krugler  <daniel.kruegler@googlemail.com>

	* include/std/type_traits (result_of): Provide "SFINAE-friendly"
	(see N3436) implementation.
	* testsuite/20_util/result_of/sfinae_friendly_1.cc: New.
	* testsuite/20_util/result_of/sfinae_friendly_2.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Tweak
	dg-error line numbers.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.

From-SVN: r191930
2012-10-01 16:02:57 +00:00
Ulrich Drepper
48c7b524c1 Optimize bulk mode for normal_distribution<double> for SSE3.
2012-09-26  Ulrich Drepper  <drepper@gmail.com>

	Optimize bulk mode for normal_distribution<double> for SSE3.
	* configure.host: Define cpu_opt_bits_random.
	* configure.ac: Substitute CPU_OPT_BITS_RANDOM.
	* include/Makefile.am (bits_headers): Add ${bits_host_headers}.
	(bits_host_headers): Define.
	* include/bits/random.tcc: Move __details::_Power_of_2 to...
	* include/bits/random.h: ...here.
	* include/std/random: Include <bits/opt_random.h>.
	* config/cpu/i486/opt/bits/opt_random.h: New file.
	* config/cpu/generic/opt/bits/opt_random.h: New file.
	* configure: Regenerated.
	* Makefile.in: Regenerated.
	* aclocal.m4: Regenerated.
	* doc/Makefile.in: Regenerated.
	* include/Makefile.in: Regenerated.
	* libsupc++/Makefile.in: Regenerated.
	* po/Makefile.in: Regenerated.
	* python/Makefile.in: Regenerated.
	* src/Makefile.in: Regenerated.
	* src/c++11/Makefile.in: Regenerated.
	* src/c++98/Makefile.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.

	* config/cpu/generic/opt/ext/opt_random.h: Fix comment.

From-SVN: r191758
2012-09-26 13:10:26 +00:00
Jonathan Wakely
885e812159 re PR libstdc++/54388 (std::array.at() const results in undefined behaviour)
PR libstdc++/54388
	* include/std/array (array::at() const): Ensure lvalue result.
	* testsuite/23_containers/array/element_access/54388.cc: New.
	* 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: r191114
2012-09-09 18:56:51 +01:00
Benjamin Kosnik
3e7e2f128b PR libstdc++/54005 continued
2012-08-30  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/54005 continued
	* include/std/atomic: Use __atomic_lock_free with
	* include/bits/atomic_base.h: Same.

From-SVN: r190810
2012-08-30 19:24:58 +00:00
Jonathan Wakely
3dd808fe94 re PR libstdc++/54297 ([C++11] Segmentation fault with std::async and released shared state)
PR libstdc++/54297
	* src/c++11/future.cc (~_Async_state_common): Move to...
	* src/c++11/compatibility-thread-c++0x.cc (~_Async_state_common):
	Here.
	(_GLIBCXX_ABI_COMPAT_ASYNC): Rename to _GLIBCXX_ASYNC_ABI_COMPAT.
	* include/std/future (_GLIBCXX_ABI_COMPAT_ASYNC): Likewise.

From-SVN: r190685
2012-08-26 14:49:44 +01:00
Jonathan Wakely
277f43d2d0 re PR libstdc++/54297 ([C++11] Segmentation fault with std::async and released shared state)
PR libstdc++/54297
	* include/std/future (~_Async_state_impl): Join thread before
	derived class members are destroyed.
	(~_Async_state_common): Only define non-trivial destructor when
	included from future.cc for ABI compatibility reasons.
	* src/c++11/future.cc (_GLIBCXX_ABI_COMPAT_ASYNC): Define.
	* testsuite/30_threads/async/54297.cc: New.

From-SVN: r190672
2012-08-26 00:01:40 +01:00
François Dumont
181a5a136f 2012-08-10 François Dumont <fdumont@gcc.gnu.org>
Ollie Wild  <aaw@google.com>

	* include/bits/hashtable.h
	(_Hashtable<>_M_insert_multi_node(hash_code, node_type*)): New.
	(_Hashtable<>_M_insert(_Args&&, false_type)): Use latter.
	(_Hashtable<>::_M_emplace(false_type, _Args&&...)): Likewise.
	(_Hashtable<>::_M_insert_bucket): Replace by ...
	(_Hashtable<>::_M_insert_unique_node(size_type, hash_code, node_type*)):
	... this, new.
	(_Hashtable<>::_M_insert(_Args&&, true_type)): Use latter.
	(_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
	* include/bits/hashtable_policy.h (_Map_base<>::operator[]): Use
	latter, emplace the value_type rather than insert.
	* include/std/unordered_map: Include tuple.
	* include/std/unordered_set: Likewise.
	* testsuite/util/testsuite_counter_type.h: New.
	* testsuite/23_containers/unordered_map/operators/2.cc: New.

Co-Authored-By: Ollie Wild <aaw@google.com>

From-SVN: r190355
2012-08-13 19:43:19 +00:00
Jonathan Wakely
9ab48d6e6c acinclude.m4: Update references to final C++11 standard.
* acinclude.m4: Update references to final C++11 standard.
	* include/bits/shared_ptr.h: Likewise.
	* include/bits/shared_ptr_base.h: Likewise.
	* include/bits/unique_ptr.h: Likewise.
	* include/std/chrono: Likewise.
	* include/std/thread: Likewise.

From-SVN: r190271
2012-08-09 23:45:20 +01:00
Benjamin Kosnik
743ca87fe8 re PR libstdc++/54005 (Use __atomic_always_lock_free in libstdc++ is_lock_free instead of __atomic_is_lock_free)
2012-08-07  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/54005
	* include/std/atomic: Use __atomic_always_lock_free.
	* include/bits/atomic_base.h: Same.

From-SVN: r190216
2012-08-07 23:03:55 +00:00
Jonathan Wakely
6e48db73ed memory: Include auto_ptr.h later.
* include/std/memory: Include auto_ptr.h later.
	* include/bits/shared_ptr.h (shared_ptr(auto_ptr<_Up>&&): Remove
	definition.
	* include/bits/shared_ptr_base.h (__shared_ptr(auto_ptr<_Up>&&):
	Likewise.
	* include/bits/unique_ptr.h (unique_ptr(auto_ptr<_Up>&&): Likewise.
	* include/backward/auto_ptr.h (unique_ptr(auto_ptr<_Up>&&): Define.
	(shared_ptr(auto_ptr<_Up>&&, __shared_ptr(auto_ptr<_Up>&&): Likewise.
	* include/std/future: Reduce header dependencies.
	* testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line
	numbers.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.

From-SVN: r190109
2012-08-03 01:27:48 +01:00
Chip Salzenberg
d069a690ee re PR libstdc++/54025 (atomic<chrono::duration> won't compile: chrono::duration::duration() is not C++11 compliant)
2012-07-20  Chip Salzenberg  <chip@pobox.com>
	    Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR libstdc++/54025
	* include/std/chrono (duration<>::duration): Fix per C++11.
	* testsuite/20_util/duration/cons/54025.cc: New.
	* testsuite/20_util/duration/cons/constexpr.cc: Adjust.

Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>

From-SVN: r189711
2012-07-20 09:48:57 +00:00
Paolo Carlini
f8b54112b5 re PR libstdc++/53872 ([C++11] ADL bug in std::thread)
2012-07-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/53872
	* include/std/thread (thread::_M_make_routine): Qualify make_shared
	to prevent ADL.
	* testsuite/30_threads/thread/adl.cc: New.

From-SVN: r189329
2012-07-06 13:55:58 +00:00
Jonathan Wakely
b63d8901d1 * include/std/condition_variable: Update copyright years.
From-SVN: r189277
2012-07-05 02:14:35 +01:00
Jonathan Wakely
7f426c93a7 re PR libstdc++/53830 (condition_variable_any - deadlock issue)
PR libstdc++/53830
	* include/std/condition_variable (condition_variable_any::wait):
	Move _Unlock type to class scope.
	(condition_variable_any::wait_until): Reuse it.
	* testsuite/30_threads/condition_variable_any/53830.cc: New.

From-SVN: r189268
2012-07-04 23:17:18 +01:00
Paolo Carlini
c128d2031e re PR libstdc++/53840 ([C++11] DR 921. Rational Arithmetic should use template aliases)
2012-07-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/53840
	* include/std/ratio (ratio_multiply, ratio_divide, ratio_add,
	ratio_subtract): Use template aliases.
	* include/std/chrono (duration<>::duration(const duration<>&),
	duration_cast): Adjust.
	* testsuite/20_util/ratio/operations/53840.cc: New.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
	* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.

From-SVN: r189239
2012-07-03 19:24:07 +00:00
Jonathan Wakely
ea15487933 re PR libstdc++/53578 (include/ext/concurrence.h relies on ill-formed narrowing conversions)
PR libstdc++/53578
	* include/ext/concurrence.h (__recursive_mutex::_S_destroy): Fix
	narrowing conversion.
	* include/std/mutex (__recursive_mutex_base::_S_destroy): Likewise.

From-SVN: r188646
2012-06-15 01:27:29 +01:00
Jonathan Wakely
5c8dd62a1b re PR libstdc++/53648 ([C++11] nested empty tuples)
PR libstdc++/53648
	* include/std/tuple (__empty_not_final): Do not use EBO for tuples.
	* testsuite/20_util/tuple/53648.cc: New.
	* testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error line
	number.

From-SVN: r188636
2012-06-14 23:07:33 +01:00
DJ Delorie
586518549e random.tcc (seed_seq::generate): Cast max() operands to size_t to ensure a template match.
* include/bits/random.tcc (seed_seq::generate): Cast max()
operands to size_t to ensure a template match.
* include/std/bitset (_M_copy_from_ptr): Cast min() operands to
size_t to ensure a template match.

From-SVN: r187376
2012-05-10 16:32:47 -04:00
Benjamin Kosnik
d632488ae0 re PR libstdc++/44015 (template parameters not documented)
2012-05-02  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/44015
	* include/bits/basic_ios.h: Add tparam markup for
	* doxygen.  include/bits/basic_string.h: Same.
	* include/bits/forward_list.h: Same.
	* include/bits/stl_bvector.h: Same.
	* include/bits/stl_deque.h: Same.
	* include/bits/stl_list.h: Same.  include/bits/stl_map.h:
	* Same.  include/bits/stl_multimap.h: Same.
	* include/bits/stl_multiset.h: Same.
	* include/bits/stl_pair.h: Same.
	* include/bits/stl_queue.h: Same.
	* include/bits/stl_set.h: Same.
	* include/bits/stl_stack.h: Same.
	* include/bits/stl_vector.h: Same.
	* include/bits/unordered_map.h: Same.
	* include/bits/unordered_set.h: Same.  include/std/array:
	* Same.  include/std/atomic: Same.  include/std/fstream:
	* Same.  include/std/istream: Same.  include/std/ostream:
	* Same.  include/std/sstream: Same.
	* include/std/streambuf: Same.
	* testsuite/23_containers/deque/requirements/dr438/*:
          Adjust line numbers.
	* testsuite/23_containers/list/requirements/dr438/*: Same.
	* testsuite/23_containers/vector/requirements/dr438/*: Same.

From-SVN: r187066
2012-05-02 22:25:28 +00:00
Jonathan Wakely
143a1ce16c functional (function::function(F)): LWG 2132: Disable constructor if argument isn't callable.
* include/std/functional (function::function(F)): LWG 2132: Disable
	constructor if argument isn't callable.
	* testsuite/20_util/function/cons/callable.cc: New.

From-SVN: r186947
2012-04-29 23:59:37 +01:00
Marc Glisse
1c8300874e re PR libstdc++/22200 (numeric_limits<signed>::is_modulo is inconsistent with gcc)
2012-04-29  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/22200
    	* include/std/limits (numeric_limits<>::is_modulo): False for
    	signed types.

From-SVN: r186944
2012-04-29 09:25:17 +00:00
Jonathan Wakely
862023d77a scoped_allocator (scoped_allocator::__outermost): Do not pass non-POD to varargs function.
* include/std/scoped_allocator (scoped_allocator::__outermost): Do
	not pass non-POD to varargs function.
	* testsuite/20_util/scoped_allocator/1.cc: Fix test.

From-SVN: r186836
2012-04-25 19:03:03 +01:00
Daniel Krugler
62fa805ffa type_traits (is_nothrow_destructible): Implement.
2012-04-23  Daniel Krugler  <daniel.kruegler@googlemail.com>

	* include/std/type_traits (is_nothrow_destructible): Implement.
	(is_destructible): Implement LWG 2049.
	* testsuite/util/testsuite_tr1.h: Add tests.
	* testsuite/20_util/is_nothrow_destructible/value.cc: New.
	* testsuite/20_util/is_nothrow_destructible/requirements/typedefs.cc:
	* testsuite/20_util/is_nothrow_destructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_destructible/value.cc: Adjust and extend.
	* testsuite/20_util/is_default_constructible/value.cc: Tweak.
	* testsuite/20_util/is_constructible/value-2.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
	dg-error line numbers.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.

From-SVN: r186726
2012-04-23 21:34:06 +00:00
Paolo Carlini
9771644a91 re PR libstdc++/53080 (tuple interface to std::array doesn't check bounds)
2012-04-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/53080
	* include/std/array (tuple_element, get): static_assert I < N.
	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
	New.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
	* testsuite/23_containers/array/tuple_interface/tuple_element.cc: Fix.

From-SVN: r186702
2012-04-23 12:26:43 +00:00
Paolo Carlini
b4989a1af9 re PR libstdc++/53052 ([C++11] is_explicitly_convertible still part of <type_traits> header)
2012-04-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/53052
	* include/std/type_traits (is_explicitly_convertible): Remove.
	* testsuite/20_util/is_explicitly_convertible: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Adjust dg-error line numbers.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.

From-SVN: r186617
2012-04-20 09:39:17 +00:00
Paolo Carlini
6a9ecd3492 re PR libstdc++/52702 ([C++11] std::is_trivially_destructible is missing)
2012-04-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/52702
	* include/std/type_traits (is_trivially_destructible): Add.
	(has_trivial_destructor): Remove.
	* testsuite/util/testsuite_common_types.h: Adjust.
	* testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
	* testsuite/20_util/pair/requirements/dr801.cc: Likewise.
	* testsuite/20_util/is_trivially_destructible/value.cc: New.
	* testsuite/20_util/is_trivially_destructible/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_trivially_destructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Adjust dg-error line numbers.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.

From-SVN: r186474
2012-04-15 23:35:27 +00:00
Jonathan Wakely
181c9de2a6 functional (__callable_functor): Overload for volatile-qualified pointers.
* include/std/functional (__callable_functor): Overload for
	volatile-qualified pointers.
	* testsuite/20_util/function/10.cc: New.

From-SVN: r186055
2012-04-01 18:10:57 +01:00
Jonathan Wakely
28d5436f07 functional (mem_fn): Qualify to prevent ADL.
* include/std/functional (mem_fn): Qualify to prevent ADL.
	* testsuite/20_util/function_objects/mem_fn/adl.cc: New.

From-SVN: r185895
2012-03-27 21:25:12 +01:00
Jonathan Wakely
c4db9a775b type_traits (result_of): Fix handling of cv-quals.
* include/std/type_traits (result_of): Fix handling of cv-quals.
	* testsuite/20_util/result_of/1.cc: New.
	* testsuite/20_util/result_of/2.cc: New.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
	line numbers.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r185845
2012-03-27 10:03:10 +01:00
Paolo Carlini
4b74f2b44d array (array<>::at(size_type) const): Fix version for undefined __EXCEPTIONS.
2012-03-22  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/array (array<>::at(size_type) const): Fix version
	for undefined __EXCEPTIONS.

From-SVN: r185689
2012-03-22 12:33:17 +00:00
Benjamin Kosnik
d8dd52a990 user.cfg.in: Update to Doxygen 1.8.0.
2012-03-08  Benjamin Kosnik  <bkoz@redhat.com>

	    * doc/doxygen/user.cfg.in: Update to Doxygen 1.8.0.
	    * include/bits/locale_facets.h: Adjust markup to avoid warnings.
	    * include/ext/pb_ds/assoc_container.hpp: Same.
	    * include/ext/pb_ds/priority_queue.hpp: Same.
	    * include/std/fstream: Same.
	    * include/std/ratio: Same.
	    * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Adjust line
	    numbers.
	    * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same.

Co-Authored-By: Ramana Radhakrishnan <ramana@gcc.gnu.org>

From-SVN: r185094
2012-03-08 05:20:52 +00:00
Paolo Carlini
b98fcf6ecd limits (numeric_limits): Fix returns per C++11.
2012-03-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/limits (numeric_limits): Fix returns per C++11.
	* testsuite/18_support/numeric_limits/primary.cc: New.

From-SVN: r184837
2012-03-02 22:24:45 +00:00
Jonathan Wakely
b59cbd5034 re PR libstdc++/51296 (Several 30_threads tests FAIL on Tru64 UNIX)
libgcc/

	PR libstdc++/51296
	PR libstdc++/51906
	* gthr-posix.h: Allow static initializer macros to be disabled.
	(__gthrw_pthread_cond_init): Define weak reference unconditionally.

libstdc++-v3/

	PR libstdc++/51296
	* include/std/mutex (__mutex_base::~__mutex_base): Declare noexcept.
	* src/c++11/condition_variable.cc (condition_variable): Use macro for
	initializer function.

	PR libstdc++/51906
	* config/os/bsd/darwin/os_defines.h: Disable static initializer for
	recursive mutexes.

From-SVN: r183955
2012-02-07 09:19:27 +00:00
Jonathan Wakely
be38506d7c re PR libstdc++/52104 (go1 fails to run on Solaris 10/11 x86 with with gld)
PR libstdc++/52104
	* include/std/future (__future_base::_Async_state_common): Define
	destructor inline for targets without TLS.
	* src/c++11/future.cc (__future_base::_Async_state_common): Only
	define destructor for TLS targets.

From-SVN: r183920
2012-02-05 23:55:51 +00:00
Jeffrey Yasskin
cee8c7a274 re PR c++/52119 ([C++11] overflow in signed left shift isn't diagnosed)
2012-02-05  Jeffrey Yasskin  <jyasskin@gcc.gnu.org>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/52119
	* include/std/limits (__glibcxx_min): Fix to avoid undefined behavior.

From-SVN: r183905
2012-02-05 12:58:51 +00:00
Jonathan Wakely
488b3e6573 re PR libstdc++/49204 ([C++0x] remaining issues in <future>)
PR libstdc++/49204
	* include/std/future (__future_base::_State_base::wait()): Use lambda
	expression for predicate and remove redundant test.
	(__future_base::_State_base::wait_for()): Return future_status and
	use lambda expression for predicate.
	(__future_base::_State_base::wait_until()): Likewise.
	(__basic_future::wait_for(), __basic_future::wait_until()): Likewise.
	(__future_base::_Async_state): Replace with _Async_state_common
	class for non-dependent functionality and _Async_state_impl class
	template for dependent functionality.
	(__future_base::_Async_state_common::_M_join): Serialize attempts to
	join thread.
	(__future_base::_Async_state_common::_M_run_deferred): Join.
	(__future_base::_Async_state::_M_do_run): Replace with lambda.
	* src/c++11/future.cc (__future_base::_Async_state_common): Define
	destructor, so key function is in the library.
	* config/abi/pre/gnu.ver: Add exports for ~_Async_state_common.
	* testsuite/30_threads/packaged_task/members/get_future.cc: Expect
	future_status return instead of bool.
	* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
	* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
	* testsuite/30_threads/future/members/wait_until.cc: Likewise.
	* testsuite/30_threads/future/members/wait_for.cc: Likewise.
	* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
	* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
	* testsuite/30_threads/promise/members/swap.cc: Likewise.

From-SVN: r183788
2012-02-01 00:20:08 +00:00
Jonathan Wakely
7e98765e75 re PR libstdc++/49204 ([C++0x] remaining issues in <future>)
PR libstdc++/49204
	* include/std/future (future_errc): Implement LWG 2056.

From-SVN: r182658
2011-12-23 16:10:48 +00:00
Jonathan Wakely
d8ab827382 re PR libstdc++/51365 (cannot use final empty class in std::tuple)
PR libstdc++/51365
	* include/std/tuple (_Tuple_impl): Check __is_final as well as
	is_empty.
	* testsuite/20_util/tuple/51365.cc: New.

From-SVN: r182523
2011-12-20 09:09:50 +00:00
Benjamin Kosnik
7897a1c029 user.cfg.in: Add macros, directories.
2011-12-10  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/doxygen/user.cfg.in: Add macros, directories.
	* include/bits/locale_classes.h: Remove doxygen warnings, fix markup.
	* include/bits/locale_classes.tcc: Same.
	* include/bits/shared_ptr.h: Same.
	* include/bits/stl_algo.h: Same.
	* include/bits/stl_list.h: Same.
	* include/bits/stl_numeric.h: Same.
	* include/debug/safe_base.h: Same.
	* include/parallel/equally_split.h: Same.
	* include/std/bitset: Same.
	* include/std/complex: Same.
	* include/std/fstream: Same.
	* include/std/istream: Same.
	* include/std/ostream: Same.
	* include/tr2/dynamic_bitset: Same.
	* scripts/run_doxygen: Remove munging for names that no longer exist.

	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Adjust line numbers.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.

From-SVN: r182189
2011-12-10 15:33:06 +00:00
Jonathan Wakely
3d0c32fe56 atomic_base.h (__calculate_memory_order): Rename to...
* include/bits/atomic_base.h (__calculate_memory_order): Rename to...
	(__cmpexch_failure_order): This, and rewrite as constexpr function.
	(compare_exchange_strong, compare_exchange_weak): Use it.
	* include/std/atomic (compare_exchange_strong, compare_exchange_weak):
	Likewise.

From-SVN: r182105
2011-12-08 09:44:57 +00:00
Paolo Carlini
8535715d0f re PR libstdc++/51438 (std::exception and derived classes are not compatible with std::nested_exception and C++11 in general)
2011-12-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/51438
	* libsupc++/nested_exception.h (nested_exception::~nested_exception):
	Declare noexcept.
	* libsupc++/nested_exception.cc: Adjust.
	* testsuite/18_support/nested_exception/51438.cc: New.
	* testsuite/18_support/nested_exception/throw_with_nested.cc: Adjust.
	* testsuite/18_support/nested_exception/rethrow_if_nested.cc:
	Likewise.

	* src/shared_ptr.cc: Use noexcept where appropriate.
	* include/std/system_error: Likewise.
	* include/std/functional: Likewise.
	* include/bits/shared_ptr_base.h: Likewise.
	* src/stdexcept.cc: Use _GLIBCXX_USE_NOEXCEPT where appropriate.
	* include/std/stdexcept: Likewise.
	* libsupc++/bad_cast.cc: Likewise.
	* libsupc++/bad_typeid.cc: Likewise.
	* libsupc++/eh_exception.cc: Likewise.
	* libsupc++/typeinfo: Likewise.
	* libsupc++/exception: Likewise.
	* libsupc++/eh_ptr.cc: Likewise.
	* libsupc++/bad_alloc.cc: Likewise.
	* libsupc++/exception_ptr.h: Likewise.

	* include/std/chrono: Use noexcept where appropriate.
	* src/chrono.cc: Likewise.

From-SVN: r182064
2011-12-06 20:03:25 +00:00
Jonathan Wakely
62b547b5f6 re PR libstdc++/51183 (pair piecewise_construct_t constructor copies)
2011-12-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
	    Chris Jefferson  <chris@bubblescope.net>

	PR libstdc++/51183
	* include/std/stl_pair.h (pair<>::__cons, pair<>::__do_cons): Remove.
	(pair<>::pair(piecewise_construct_t, tuple<>, tuple<>): Only declare.
	(pair<>::pair(tuple<>&, tuple<>&, _Index_tuple<>, _Index_tuple<>)):
	Declare.
	* include/std/tuple (pair<>::__cons, pair<>::__do_cons): Remove.
	(pair<>::pair(tuple<>&, tuple<>&, _Index_tuple<>, _Index_tuple<>)):
	Define.
	(pair<>::pair(piecewise_construct_t, tuple<>, tuple<>): Define,
	delegating to the latter.
	* testsuite/20_util/pair/piecewise2.cc: New.

Co-Authored-By: Chris Jefferson <chris@bubblescope.net>

From-SVN: r182054
2011-12-06 15:13:04 +00:00
Jonathan Wakely
13901e4b28 type_traits: Doxygen improvements.
* include/std/type_traits: Doxygen improvements.
	* include/bits/move.h: Likewise.
	* include/tr1/type_traits:  Likewise.
	* include/tr2/type_traits:  Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
	line numbers
	* testsuite/20_util/forward/c_neg.cc: Likewise.
	* testsuite/20_util/forward/f_neg.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r181993
2011-12-04 16:53:17 +00:00
Paolo Carlini
f5ca3c3408 iomanip (put_money): Fix thinko, use __err local, like in, eg, basic_ostream::_M_insert.
2011-12-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/iomanip (put_money): Fix thinko, use __err local,
	like in, eg, basic_ostream::_M_insert.

From-SVN: r181931
2011-12-02 17:23:08 +00:00
Benjamin Kosnik
a152e96f01 acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove size-specific macros.
2011-11-30  Benjamin Kosnik  <bkoz@redhat.com>

        * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove
        size-specific macros. _GLIBCXX_ATOMIC_BUILTINS_1,
        _GLIBCXX_ATOMIC_BUILTINS_2, _GLIBCXX_ATOMIC_BUILTINS_4,
        _GLIBCXX_ATOMIC_BUILTINS_8. Use _GLIBCXX_ATOMIC_BUILTINS to
        indicate use of C++11 atomic builtins.
        * config.h.in: Regenerate.
        * configure: Regenerate.
        * include/Makefile.am (bits_sup_headers): Add atomic_lockfree_defines.h.
        * include/Makefile.in: Regenerate.
        * libsupc++/Makefile.am: Compile C++11 support with -std=gnu++0x.
        * libsupc++/Makefile.in: Regenerate.

        * include/bits/atomic_base.h: Move lock-free property macros...
        * libsupc++/atomic_lockfree_defines.h: ...here.
        * include/std/future: Use C++11 macros.
        * libsupc++/eh_ptr.cc: Same.
        * libsupc++/eh_throw.cc: Same.
        * libsupc++/exception: Same.
        * libsupc++/exception_ptr.h: Same.
        * libsupc++/guard.cc: Same.
        * libsupc++/nested_exception.cc: Same.
        * libsupc++/nested_exception.h: Same.
        * src/future.cc: Same.

        * include/ext/atomicity.h: Use _GLIBCXX_ATOMIC_BUILTINS.

        * doc/doxygen/user.cfg.in
        * doc/xml/manual/concurrency_extensions.xml

        * testsuite/18_support/exception_ptr/lifespan.cc
        * testsuite/lib/libstdc++.exp

From-SVN: r181869
2011-12-01 02:20:32 +00:00