Commit 0ee9c843 by Marek Polacek Committed by Marek Polacek

DR 458

	DR 458
	* ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
	(ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.

	* gcc.dg/c11-stdatomic-2.c: New test.

From-SVN: r213981
parent ba8aa6fc
2014-08-14 Marek Polacek <polacek@redhat.com>
DR 458
* ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
(ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
2014-08-14 Tom de Vries <tom@codesourcery.com>
* emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
......
......@@ -95,30 +95,16 @@ typedef _Atomic __UINTMAX_TYPE__ atomic_uintmax_t;
#define atomic_signal_fence(MO) __atomic_signal_fence (MO)
#define atomic_is_lock_free(OBJ) __atomic_is_lock_free (sizeof (*(OBJ)), (OBJ))
#define __atomic_type_lock_free(T) \
(__atomic_always_lock_free (sizeof (T), (void *) 0) \
? 2 \
: (__atomic_is_lock_free (sizeof (T), (void *) 0) ? 1 : 0))
#define ATOMIC_BOOL_LOCK_FREE \
__atomic_type_lock_free (atomic_bool)
#define ATOMIC_CHAR_LOCK_FREE \
__atomic_type_lock_free (atomic_char)
#define ATOMIC_CHAR16_T_LOCK_FREE \
__atomic_type_lock_free (atomic_char16_t)
#define ATOMIC_CHAR32_T_LOCK_FREE \
__atomic_type_lock_free (atomic_char32_t)
#define ATOMIC_WCHAR_T_LOCK_FREE \
__atomic_type_lock_free (atomic_wchar_t)
#define ATOMIC_SHORT_LOCK_FREE \
__atomic_type_lock_free (atomic_short)
#define ATOMIC_INT_LOCK_FREE \
__atomic_type_lock_free (atomic_int)
#define ATOMIC_LONG_LOCK_FREE \
__atomic_type_lock_free (atomic_long)
#define ATOMIC_LLONG_LOCK_FREE \
__atomic_type_lock_free (atomic_llong)
#define ATOMIC_POINTER_LOCK_FREE \
__atomic_type_lock_free (void * _Atomic)
#define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE
#define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE
#define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE
#define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE
#define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE
#define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE
#define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE
#define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE
#define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE
#define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE
/* Note that these macros require __typeof__ and __auto_type to remove
......
2014-08-14 Marek Polacek <polacek@redhat.com>
DR 458
* gcc.dg/c11-stdatomic-2.c: New test.
2014-08-14 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/62106
......
/* Test stdatomic.h header contents. Test that ATOMIC_*_LOCK_FREE
macros can be used in an #if directive (DR#458). */
/* { dg-do preprocess } */
/* { dg-options "-std=c11 -pedantic-errors" } */
#include <stdatomic.h>
#if ATOMIC_BOOL_LOCK_FREE
#endif
#if ATOMIC_CHAR_LOCK_FREE
#endif
#if ATOMIC_CHAR16_T_LOCK_FREE
#endif
#if ATOMIC_CHAR32_T_LOCK_FREE
#endif
#if ATOMIC_WCHAR_T_LOCK_FREE
#endif
#if ATOMIC_SHORT_LOCK_FREE
#endif
#if ATOMIC_INT_LOCK_FREE
#endif
#if ATOMIC_LONG_LOCK_FREE
#endif
#if ATOMIC_LLONG_LOCK_FREE
#endif
#if ATOMIC_POINTER_LOCK_FREE
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment