summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/include/bits/atomic_base.h
Commit message (Collapse)AuthorAgeFilesLines
* Backported from mainlineredi2014-08-041-2/+2
| | | | | | | | | 2014-04-15 Jonathan Wakely <jwakely@redhat.com> * include/bits/atomic_base.h (__atomic_base<_PTp*>::_M_type_size): Add const to constexpr member functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@213600 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libstdc++/60658redi2014-03-251-2/+2
| | | | | | | | * include/bits/atomic_base.h (__atomic_base<_PTp*>::is_lock_free()): Use sizeof pointer type not the element type. * testsuite/29_atomics/atomic/60658.cc: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208819 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright years in libstdc++-v3/rsandifo2014-01-021-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206301 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-11-15 Ondřej Bílka <neleai@seznam.cz>redi2013-11-151-1/+1
| | | | | | | | | | | | | | | | | | | Jonathan Wakely <jwakely.gcc@gmail.com> * doc/xml/manual/build_hacking.xml: Fix documentation typos. * doc/xml/manual/configure.xml: Likewise. * include/bits/atomic_base.h: Fix typos in comments. * include/bits/random.h: Likewise. * include/ext/cast.h: Likewise. * libsupc++/cxxabi.h: Likewise. * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise. * testsuite/tr1/5_numerical_facilities/special_functions/testcase.h: Likewise. * testsuite/util/exception/safety.h: Likewise. * testsuite/util/testsuite_containers.h: Likewise. * testsuite/util/testsuite_hooks.cc: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204850 138bc75d-0d04-0410-961f-82ee72b054a4
* Mark all member functions with memory models always inline v2ak2013-05-091-42/+46
| | | | | | | | | | | | | | | | | | | | | | | | | When a non constant memory model is passed to __atomic_* gcc falls back to seq_cst. This drops any HLE acquire or release bits. This can happen when <atomic> is used with -O0 as the member functions are not always inlined then and the memory argument passed in ends up being non-constant. v2: Use _GLIBCXX_ALWAYS_INLINE libstdc++-v3/: 2013-05-08 Andi Kleen <ak@linux.intel.com> PR target/55947 * libstdc++-v3/include/bits/atomic_base.h (_GLIBCXX_ALWAYS_INLINE): Add new macro. (atomic_thread_fence, atomic_signal_fence, test_and_set, clear, store, load, exchange, compare_exchange_weak) compare_exchange_strong, fetch_add, fetch_sub, fetch_and, fetch_or, fetch_xor): Mark _GLIBCXX_ALWAYS_INLINE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198733 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libstdc++/56012redi2013-02-261-7/+13
| | | | | | | | | | | | * include/bits/atomic_base.h (atomic_flag): Fix narrowing conversion. * testsuite/29_atomics/atomic/operators/56012.cc: New. PR libstdc++/56011 * include/std/atomic (atomic<bool>::operator=(bool) volatile): Add missing overload. * testsuite/29_atomics/atomic/operators/56011.cc: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196296 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright in libstdc++-v3.rsandifo2013-02-031-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195701 138bc75d-0d04-0410-961f-82ee72b054a4
* libstdc++: Add mem_order_hle_acquire/release to atomic.h v2ak2013-01-201-45/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | The underlying compiler supports additional __ATOMIC_HLE_ACQUIRE/RELEASE memmodel flags for TSX, but this was not exposed to the C++ wrapper. Handle it there. These are additional flags, so some of assert checks need to mask off the flags before checking the memory model type. libstdc++-v3/: 2013-01-12 Andi Kleen <ak@linux.intel.com> Jonathan Wakely <jwakely.gcc@gmail.com> PR libstdc++/55223 * include/bits/atomic_base.h (__memory_order_modifier): Add __memory_order_mask, __memory_order_modifier_mask, __memory_order_hle_acquire, __memory_order_hle_release. (operator|,operator&): Add. (__cmpexch_failure_order): Rename to __cmpexch_failure_order2. (__cmpexch_failure_order): Add. (clear, store, load, compare_exchange_weak, compare_exchange_strong): Handle flags. * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Add. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195321 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-06 Paolo Carlini <paolo.carlini@oracle.com>paolo2012-11-061-6/+5
| | | | | | | | | | | | * include/bits/atomic_base.h: Don't include <cstddef>, use nullptr. * include/std/atomic: Likewise. * include/tr2/dynamic_bitset: Likewise. * libsupc++/vec.cc (compute_size(std::size_t, std::size_t, std::size_t)): Fix for -fno-exceptions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193232 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-09 Andrew MacLeod <amacleod@redhat.com>amacleod2012-10-091-1/+1
| | | | | | | | | | PR libstdc++/54861 * include/bits/atomic_base.h (atomic_signal_fence): Call __atomic_signal_fence instead of __atomic_thread_fence. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192268 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-08-30 Benjamin Kosnik <bkoz@redhat.com>bkoz2012-08-301-4/+5
| | | | | | | | PR libstdc++/54005 continued * include/std/atomic: Use __atomic_lock_free with * include/bits/atomic_base.h: Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190810 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-08-07 Benjamin Kosnik <bkoz@redhat.com>bkoz2012-08-071-4/+4
| | | | | | | | PR libstdc++/54005 * include/std/atomic: Use __atomic_always_lock_free. * include/bits/atomic_base.h: Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190216 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-02-03 Benjamin Kosnik <bkoz@redhat.com>bkoz2012-02-031-15/+30
| | | | | | | | | PR libstdc++/51811 * include/bits/atomic_base.h (atomic<_Tp*>): Fix offsets. * testsuite/29_atomics/atomic/operators/51811.cc: New. * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183875 138bc75d-0d04-0410-961f-82ee72b054a4
* libstdc++: Use __GCC_ATOMIC_TEST_AND_SET in atomic_flag.rth2012-01-261-2/+9
| | | | | | | | | * include/bits/atomic_base.h (__atomic_flag_base): Define _M_i based on the value of __GCC_ATOMIC_TEST_AND_SET_TRUEVAL. (ATOMIC_FLAG_INIT): Initialize with 0, not false. (atomic_flag::atomic_flag): Use __GCC_ATOMIC_TEST_AND_SET_TRUEVAL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183582 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/bits/atomic_base.h (__calculate_memory_order): Rename to...redi2011-12-081-11/+9
| | | | | | | | | | (__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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182105 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-11-30 Benjamin Kosnik <bkoz@redhat.com>bkoz2011-12-011-19/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181869 138bc75d-0d04-0410-961f-82ee72b054a4
* c-familyamacleod2011-11-281-12/+11
| | | | | | | | | | | | | | | | | * c-cpp-builtin.c (cpp_atomic_builtins):New. Emit all atomic predefines in one place. Add LOCK_FREE predefines. (c_cpp_builtins): Move Legacy HAVE_SYNC predefines to new func. libstdc++-v3 * include/bits/atomic_base.h (ATOMIC_*_LOCK_FREE): Use new cpp predefined macros. * testsuite/29_atomics/headers/atomic/macros.cc: Add BOOL and POINTER macro checks. Check for expected compile time values. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181784 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-11-16 Andrew MacLeod <amacleod@redhat.com>amacleod2011-11-161-1/+2
| | | | | | | | | | PR libstdc++/51102 * include/bits/atomic_base.h (ATOMIC_BOOL_LOCK_FREE, ATOMIC_POINTER_LOCK_FREE): New. Add missing macros. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181414 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/51038amacleod2011-11-101-50/+14
| | | | | | | | | | | | | | | | | | | | | | | libstdc++-v3 * include/bits/atomic_base.h (atomic_thread_fence): Call built-in. (atomic_signal_fence): Call built-in. (test_and_set, clear): Call new atomic built-ins. gcc * builtins.c (expand_builtin_atomic_clear): New. Expand atomic_clear. (expand_builtin_atomic_test_and_set): New. Expand atomic test_and_set. (expand_builtin): Add cases for test_and_set and clear. * sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New. (BUILT_IN_ATOMIC_CLEAR): New. testsuite * gcc.dg/atomic-invalid.c: Add test for invalid __atomic_clear models. * gcc.dg/atomic-flag.c: New. Test __atomic_test_and_set and __atomic_clear. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181271 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-11-07 Andrew MacLeod <amacleod@redhat.com>amacleod2011-11-071-8/+2
| | | | | | | | | * include/bits/atomic_base.h (atomic_thread_fence): Revert. (atomic_signal_fence): Revert. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181119 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-11-07 Andrew MacLeod <amacleod@redhat.com>amacleod2011-11-071-6/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libstdc++-v3 * include/bits/atomic_base.h (atomic_thread_fence): Call builtin. (atomic_signal_fence): Call builtin. (atomic_flag::test_and_set): Call __atomic_exchange when it is lockfree, otherwise fall back to call __sync_lock_test_and_set. (atomic_flag::clear): Call __atomic_store when it is lockfree, otherwise fall back to call __sync_lock_release. gcc * doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and __atomic_store. * optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set only when originated from that builtin. (expand_atomic_store): Expand to __sync_lock_release when originated from that builtin. * builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that expand_atomic_exchange call originated from here. (expand_builtin_sync_lock_release): Add flag that expand_atomic_store call originated from here. (expand_builtin_atomic_exchange): Add origination flag. (expand_builtin_atomic_store): Add origination flag. * expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean parameters to indicate implementation fall back options. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181111 138bc75d-0d04-0410-961f-82ee72b054a4
* Check in patch/merge from cxx-mem-model Branchamacleod2011-11-061-75/+600
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181031 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-08-04 Paolo Carlini <paolo.carlini@oracle.com>paolo2011-08-041-4/+4
| | | | | | | | | | | * src/atomic.cc: Use noexcept. * include/std/atomic: Likewise. * include/bits/atomic_0.h: Likewise. * include/bits/atomic_2.h: Likewise. * include/bits/atomic_base.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177413 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-02-16 Benjamin Kosnik <bkoz@redhat.com>bkoz2011-02-161-33/+36
| | | | | | | | | | | | * include/std/atomic: Remove atomic_address, uplift to N3225. * include/bits/atomic_0.h: Same. * include/bits/atomic_2.h: Same. * include/bits/atomic_base.h: Same. * testsuite/29_atomics/atomic_address/*: Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170217 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-30 Benjamin Kosnik <bkoz@redhat.com>bkoz2011-01-301-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR libstdc++/36104 part four * include/bits/c++config (_GLIBCXX_STD): Remove. (_GLIBCXX_STD_D, _GLIBCXX_PR): Now _GLIBCXX_STD_C. (_GLIBCXX_P): Now _GLIBCXX_STD_A. (_GLIBCXX_NAMESPACE_DEBUG, _GLIBCXX_NAMESPACE_PARALLEL, _GLIBCXX_NAMESPACE_PROFILE, _GLIBCXX_NAMESPACE_VERSION): Remove. (_GLIBCXX_INLINE_DEBUG, _GLIBCXX_INLINE_PARALLEL, _GLIBCXX_INLINE_PROFILE): Remove. (_GLIBCXX_BEGIN_NAMESPACE(X)): Remove. (_GLIBCXX_END_NAMESPACE): Remove. (_GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y)): Remove. (_GLIBCXX_END_NESTED_NAMESPACE): Remove. (_GLIBCXX_BEGIN_NAMESPACE_ALGO): Add. (_GLIBCXX_END_NAMESPACE_ALGO): Add. (_GLIBCXX_BEGIN_NAMESPACE_CONTAINER): Add. (_GLIBCXX_END_NAMESPACE_CONTAINER): Add. (_GLIBCXX_BEGIN_NAMESPACE_VERSION): Add. (_GLIBCXX_END_NAMESPACE_VERSION): Add. (_GLIBCXX_BEGIN_LDBL_NAMESPACE): To _GLIBCXX_BEGIN_NAMESPACE_LDBL. (_GLIBCXX_END_LDBL_NAMESPACE): To _GLIBCXX_END_NAMESPACE_LDBL. (_GLIBCXX_VISIBILITY_ATTR): Revert to _GLIBCXX_VISIBILITY. * include/*: Use new macros for namespace scope. * config/*: Same. * src/*: Same. * src/Makefile.am (sources): Remove debug_list.cc, add compatibility-debug_list-2.cc. (parallel_sources): Remove parallel_list.cc, add compatibility-parallel_list-2.cc. (compatibility-parallel_list-2.[o,lo]): New rule. * src/Makefile.in: Regenerate. * src/debug_list.cc: Remove. * src/parallel_list.cc: Remove. * src/compatibility-list-2.cc: New. * src/compatibility-debug_list-2.cc: New. * src/compatibility-parallel_list-2.cc: New. * doc/doxygen/user.cfg.in: Adjust macros. * testsuite/20_util/auto_ptr/assign_neg.cc: Adjust line numbers, macros. * testsuite/20_util/declval/requirements/1_neg.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same. * testsuite/20_util/forward/c_neg.cc: Same. * testsuite/20_util/forward/f_neg.cc: Same. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same. * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Same. * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Same. * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/forward_list/capacity/1.cc: Same. * testsuite/23_containers/forward_list/requirements/dr438/ assign_neg.cc: Same. * testsuite/23_containers/forward_list/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/forward_list/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/forward_list/requirements/dr438/ insert_neg.cc: Same. * testsuite/23_containers/list/capacity/29134.cc: Same. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same. * 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. * testsuite/23_containers/vector/bool/capacity/29134.cc: Same. * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: Same. * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same. * testsuite/25_algorithms/sort/35588.cc: Same. * testsuite/27_io/ios_base/cons/assign_neg.cc: Same. * testsuite/27_io/ios_base/cons/copy_neg.cc: Same. * testsuite/ext/profile/mutex_extensions_neg.cc: Same. * testsuite/ext/profile/profiler_algos.cc: Same. * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Same. * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Same. * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Same. * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Same. * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169421 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-28 Paolo Carlini <paolo.carlini@oracle.com>paolo2011-01-281-4/+3
| | | | | | | | * include/bits/atomic_base.h: Do not include <stddef.h>. (kill_dependency): Uglify ret. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169364 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-11-18 Benjamin Kosnik <bkoz@redhat.com>bkoz2010-12-191-2/+2
| | | | | | | | | | | | | | | | * config/*/*: Use headername alias to associate private includes to public includes. * include/*/*: Same. * scripts/run_doxygen: Update for doxygen 1.7.2. * doc/doxygen/user.cfg.in: Same. * doc/doxygen/TODO: Remove. * testsuite/*/std_c++0x_neg.cc: Adjust line number. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168046 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/std/chrono: Extend constexpr application.jason2010-11-021-149/+215
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * testsuite/util/testsuite_common_types.h (constexpr_default_constructible, constexpr_single_value_constructible) : Add comments about implied constraints. * testsuite/20_util/duration/cons/constexpr.cc: Activate all tests. * testsuite/20_util/time_point/cons/constexpr.cc: Same. * testsuite/20_util/time_point/requirements/constexpr_functions.cc: Same. * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Adjust line numbers. * testsuite/20_util/time_point_cast/constexpr.cc: New. * include/std/bitset: Use __SIZEOF_* macros to re-create original logic instead of slipshod application of std::numeric_limits<T>::max() macros. * testsuite/util/testsuite_common_types.h (constexpr_default_constructible): Modify. * include/std/chrono: Tested constexpr. * testsuite/20_util/duration_cast/constexpr.cc: New. * testsuite/20_util/time_point/cons/constexpr.cc: New. * testsuite/20_util/duration/cons/constexpr.cc: Add single_value tests. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust line numbers. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same. * testsuite/20_util/time_point/cons/constexpr.cc: Add single_value tests. * testsuite/20_util/time_point/requirements/constexpr_functions.cc: Add. * testsuite/util/testsuite_common_types.h: Adjust init. * include/std/chrono (duration): Remove defaulted constructor, replace with mem-init list. * testsuite/20_util/duration/cons/constexpr.cc: Add single value. * testsuite/20_util/duration/requirements/constexpr_functions.cc: Add non-static member functions. * testsuite/20_util/default_delete/cons/constexpr.cc: New, xfail. * testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Same. * testsuite/20_util/shared_ptr/cons/constexpr.cc: Same. * testsuite/20_util/time_point/requirements/constexpr_functions.cc: Same. * testsuite/20_util/unique_ptr/cons/constexpr.cc: Same. * testsuite/20_util/weak_ptr/cons/constexpr.cc: Same. * include/std/bitset: Add constexpr as per N3126 draft. * testsuite/23_containers/bitset/cons/constexpr.cc: New. * testsuite/23_containers/bitset/requirements/constexpr_functions.cc: New. * testsuite/util/testsuite_common_types.h: Reset condition. * include/bits/random.h: Remove misleading comments. * include/bits/regex.h: Add constexpr. * testsuite/28_regex/05_constants/syntax_option_type.cc: Add tests. * testsuite/28_regex/08_basic_regex/requirements/constexpr_data.cc: New. PR libstdc++/46134 * include/std/chrono: Use default constructor. * testsuite/util/testsuite_common_types.h (constexpr_default_constructible): Adjust condition. PR libstdc++/46133 * include/std/complex: Adjust complex specialization default constructors for constexpr. * testsuite/26_numerics/complex/cons/constexpr.cc: Enable tests. * include/bits/random.h: Adjust for constexpr as per N3126 draft. * testsuite/26_numerics/random/discard_block_engine/requirements/ constexpr_data.cc: New. * testsuite/26_numerics/random/discard_block_engine/requirements/ constexpr_functions.cc: New. * testsuite/26_numerics/random/independent_bits_engine/requirements/ constexpr_functions.cc: New. * testsuite/26_numerics/random/linear_congruential_engine/requirements/ constexpr_data.cc: New. * testsuite/26_numerics/random/linear_congruential_engine/requirements/ constexpr_functions.cc: New. * testsuite/26_numerics/random/mersenne_twister_engine/requirements/ constexpr_data.cc: New. * testsuite/26_numerics/random/mersenne_twister_engine/requirements/ constexpr_functions.cc: New. * testsuite/26_numerics/random/shuffle_order_engine/requirements/ constexpr_data.cc: New. * testsuite/26_numerics/random/shuffle_order_engine/requirements/ constexpr_functions.cc: New. * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/ constexpr_data.cc: New. * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/ constexpr_functions.cc: New. * include/bits/stream_iterator.h: Add constexpr as per N3126 draft. * include/bits/streambuf_iterator.h: Same. * include/std/complex: Same. * testsuite/24_iterators/istream_iterator/cons/constexpr.cc: New. * testsuite/24_iterators/istreambuf_iterator/cons/constexpr.cc: New. * testsuite/26_numerics/complex/cons/constexpr.cc: New. * testsuite/26_numerics/complex/requirements/constexpr_functions.cc: New. * include/bits/char_traits.h: Add constexpr as per N3126 draft. * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc: New. * include/tr1_impl/array: Add constexpr as per N3126 draft. * testsuite/23_containers/array/requirements/ constexpr_functions.cc: New. * include/bits/shared_ptr.h: Revert changes. * include/bits/unique_ptr.h: Same. * include/std/chrono: Adjust. * include/tr1_impl/type_traits: Same. * testsuite/util/testsuite_common_types.h: Add test functors. * testsuite/20_util/duration/cons/constexpr.cc: New. * testsuite/20_util/duration/requirements/constexpr_functions.cc: Same. * testsuite/20_util/pair/cons/constexpr.cc: Same. * testsuite/20_util/ratio/requirements/constexpr_data.cc: Same. * testsuite/27_io/ios_base/types/fmtflags/constexpr_operators.cc: Same. * testsuite/27_io/ios_base/types/iostate/constexpr_operators.cc: Same. * testsuite/27_io/ios_base/types/openmode/constexpr_operators.cc: Same. * testsuite/30_threads/call_once/constexpr.cc: Same. * testsuite/30_threads/mutex/cons/constexpr.cc: Same. * testsuite/30_threads/once_flag/cons/constexpr.cc: Same. * testsuite/tr1/4_metaprogramming/integral_constant/requirements/ constexpr_data.cc: Same. * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust line numbers. * testsuite/29_atomics/atomic/cons/copy_neg.cc: Same. * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same. * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Same. * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: Same. * include/bits/allocator.h: Add constexpr as per N3126 draft. * include/bits/ios_base.h: Same. * include/bits/shared_ptr.h: Same. * include/bits/unique_ptr.h: Same. * include/bits/stl_iterator.h: Same. * include/bits/stl_pair.h: Same. * include/std/tuple: Same. * include/tr1_impl/type_traits: Same. * include/std/chrono: Same. * include/std/ratio: Same. * include/std/mutex: Same. * src/mutex.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same. * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same. * testsuite/27_io/ios_base/cons/assign_neg.cc: Same. * testsuite/27_io/ios_base/cons/copy_neg.cc: Same. * doc/doxygen/user.cfg.in: Replace _GLIBCXX_USE_CONSTEXPR, _GLIBCXX_CONSTEXPR for doxygen generation. * src/limits.cc: Undef. * testsuite/29_atomics/atomic/cons/constexpr.cc: Adjust. * testsuite/29_atomics/atomic_address/cons/constexpr.cc: Same. * testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Same. * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.c: Same. * testsuite/18_support/numeric_limits/constexpr.cc: To... * testsuite/18_support/numeric_limits/requirements/ constexpr_data.cc, constexpr_functions.cc: ...this * testsuite/util/testsuite_common_types.h (constexpr_single_value_constructible): Add. * testsuite/29_atomics/atomic/cons/constexpr.cc: Adjust name. * testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Same. * testsuite/29_atomics/atomic_address/cons/constexpr.cc: New. * testsuite/18_support/numeric_limits/constexpr.cc: New. * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust line numbers. * testsuite/29_atomics/atomic/cons/constexpr.cc: Same. * testsuite/29_atomics/atomic/cons/copy_neg.cc: Same. * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same. * testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Same. * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Same. * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: Same. * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc: Same. * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc: Same. * include/bits/c++config (_GLIBCXX_CONSTEXPR): Add. (_GLIBCXX_USE_CONSTEXPR): Add. * include/std/limits: Use it. * src/limits.cc: Adjust. * testsuite/ext/profile/mutex_extensions.cc: Change line number. * include/bits/atomic_0.h: Rework for N3126 draft, add constexpr. * include/bits/atomic_2.h: Same. * include/bits/atomic_base.h: Same. * include/std/atomic: Same. * src/atomic.cc: Same. * include/bits/atomicfwd_c.h: Remove. * include/bits/atomicfwd_cxx.h: Remove. * include/c_compatibility/stdatomic.h: Remove. * include/Makefile.am: Remove atomicfwd_c.h, atomicfwd_cxx.h, stdatomic.h. * include/Makefile.in: Regenerate. * doc/xml/manual/using.xml: Update list of header files for changes. * testsuite/util/testsuite_common_types.h (constexpr_constructible): Add. * testsuite/29_atomics/atomic/cons/constexpr.cc: New. * testsuite/29_atomics/atomic_integral/cons/constexpr.cc: New. * testsuite/17_intro/headers/c++200x/stdc++.cc: Modify. * testsuite/29_atomics/atomic/cons/assign_neg.cc: Same. * testsuite/29_atomics/atomic_address/cons/assign_neg.cc: Same. * testsuite/29_atomics/atomic_flag/cons/1.cc: Same. * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same. * testsuite/29_atomics/headers/atomic/macros.cc: Same. * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Same. * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc: Same. * testsuite/29_atomics/atomic_flag/test_and_set/implicit.c: Remove. * testsuite/29_atomics/atomic_flag/test_and_set/explicit.c: Same. * testsuite/29_atomics/atomic_flag/clear/1.c: Same. * testsuite/29_atomics/headers/stdatomic.h/debug_mode.c: Same. * testsuite/29_atomics/headers/stdatomic.h/functions.c: Same. * testsuite/29_atomics/headers/stdatomic.h/macros.c: Same. * testsuite/29_atomics/headers/stdatomic.h/types.c: Same. * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.16. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166171 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-12-20 Benjamin Kosnik <bkoz@redhat.com>bkoz2009-12-211-0/+224
* include/std/atomic: Update to N3000. * include/bits/atomic_0.h: Same. * include/bits/atomic_2.h: Same. * include/c_global/cstdatomic: Move... * include/bits/atomic_base.h: ...here. * include/c_compatibility/stdatomic.h: Just include atomic_base.h. * include/precompiled/stdc++.h: Adjust includes. * include/Makefile.am: Adjust files. * include/Makefile.in: Regenerate. * include/std/future: Adjust. * src/atomic.cc: Adjust, adjust exports for compatibility. * src/compatibility.cc: Move C++0x stuff... * src/compatibility-c++0x.cc: ...here. * doc/xml/manual/using.xml: Update. * doc/xml/manual/status_cxx200x.xml: Update. * doc/doxygen/user.cfg.in: Update. * testsuite/29_atomics/atomic_address/cons/assign_neg.cc: Same. * testsuite/29_atomics/atomic_address/cons/single_value.cc: Same. * testsuite/29_atomics/atomic_address/cons/copy_neg.cc: Same. * testsuite/29_atomics/atomic_address/cons/default.cc: Same. * testsuite/29_atomics/atomic_address/cons/aggregate.cc: Same. * testsuite/29_atomics/atomic_address/requirements/ standard_layout.cc: Same. * testsuite/29_atomics/atomic_address/requirements/trivial.cc: Same. * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same. * testsuite/29_atomics/atomic_integral/cons/single_value.cc: Same. * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Same. * testsuite/29_atomics/atomic_integral/cons/default.cc: Same. * testsuite/29_atomics/atomic_integral/cons/copy_list.cc: Same. * testsuite/29_atomics/atomic_integral/cons/direct_list.cc: Same. * testsuite/29_atomics/atomic_integral/requirements/ standard_layout.cc: Same. * testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Same. * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc: Same. * testsuite/29_atomics/atomic_integral/operators/ integral_assignment.cc: Same. * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: Same. * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc: Same. * testsuite/29_atomics/atomic_integral/operators/increment.cc: Same. * testsuite/29_atomics/atomic_integral/operators/bitwise.cc: Same. * testsuite/29_atomics/atomic_integral/operators/decrement.cc: Same. * testsuite/29_atomics/atomic_integral/operators/ integral_conversion.cc: Same. * testsuite/29_atomics/atomic_flag/cons/assign_neg.cc: Same. * testsuite/29_atomics/atomic_flag/cons/copy_neg.cc: Same. * testsuite/29_atomics/atomic_flag/cons/default.cc: Same. * testsuite/29_atomics/atomic_flag/cons/aggregate.cc: Same. * testsuite/29_atomics/atomic_flag/requirements/ standard_layout.cc: Same. * testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Same. * testsuite/29_atomics/atomic_flag/clear/1.cc: Same. * testsuite/29_atomics/atomic_flag/test_and_set/explicit.c * testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc: Same. * testsuite/29_atomics/atomic_flag/test_and_set/implicit.c * testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc: Same. * testsuite/29_atomics/headers/stdatomic.h/functions.c * testsuite/29_atomics/atomic/cons/assign_neg.cc: Same. * testsuite/29_atomics/atomic/cons/single_value.cc: Same. * testsuite/29_atomics/atomic/cons/copy_neg.cc: Same. * testsuite/29_atomics/atomic/cons/default.cc: Same. * testsuite/29_atomics/atomic/cons/copy_list.cc: Same. * testsuite/29_atomics/atomic/cons/direct_list.cc: Same. * testsuite/29_atomics/atomic/requirements/explicit_instantiation/ 1.cc: Same. * testsuite/29_atomics/atomic/requirements/base_classes.cc: Same. * testsuite/29_atomics/atomic/operators/integral_assignment.cc: Same. * testsuite/29_atomics/atomic/operators/integral_conversion.cc: Same. * testsuite/util/testsuite_common_types.h: Adjust. * testsuite/29_atomics/headers/cstdatomic: Move and adjust... * testsuite/29_atomics/headers/atomic: ...here. * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Same. * testsuite/29_atomics/headers/atomic/functions_std_c++0x.cc: Same. * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Same. * testsuite/29_atomics/headers/atomic/macros.cc: Same. * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc: Add. * testsuite/29_atomics/atomic/cons/user_pod.cc: Add. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155377 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud