diff options
author | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2017-11-13 16:28:05 +0000 |
---|---|---|
committer | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2017-11-13 16:29:09 +0000 |
commit | 03ac50856c9fc8c96b7a17239ee40a10397750a7 (patch) | |
tree | a648c6d3428e4757e003f6ed1748adb9613065db /gcc/testsuite/gcc.dg/atomic-generic.c | |
parent | 34efdaf078b01a7387007c4e6bde6db86384c4b7 (diff) | |
download | gcc-tarball-03ac50856c9fc8c96b7a17239ee40a10397750a7.tar.gz |
gcc 7.2.0
This is imported manually due to a bug in the tarball import script.
See the baserock-dev mailing list archives (November 2017) for a
more detailed explaination of the issue.
Diffstat (limited to 'gcc/testsuite/gcc.dg/atomic-generic.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/atomic-generic.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/gcc/testsuite/gcc.dg/atomic-generic.c b/gcc/testsuite/gcc.dg/atomic-generic.c deleted file mode 100644 index 0e40630240..0000000000 --- a/gcc/testsuite/gcc.dg/atomic-generic.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Test generic __atomic routines for proper function calling. - memory model. */ -/* { dg-options "-w" } */ -/* { dg-do run } */ -/* { dg-additional-sources "atomic-generic-aux.c" } */ - -/* Test that the generioc atomic builtins execute as expected.. - sync-mem-generic-aux.c supplies a functional external entry point for - the 4 generic functions. */ - -#include <stdlib.h> -#include <stdbool.h> -#include <string.h> - -extern void abort(); - -typedef struct test { - int array[10]; -} test_struct; - -test_struct zero = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -test_struct ones = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; -test_struct a,b; - -int size = sizeof (test_struct); -/* Test for consistency on sizes 1, 2, 4, 8, 16 and 32. */ -int -main () -{ - test_struct c; - - __atomic_store (&a, &zero, __ATOMIC_RELAXED); - if (memcmp (&a, &zero, size)) - abort (); - - __atomic_exchange (&a, &ones, &c, __ATOMIC_SEQ_CST); - if (memcmp (&c, &zero, size)) - abort (); - if (memcmp (&a, &ones, size)) - abort (); - - __atomic_load (&a, &b, __ATOMIC_RELAXED); - if (memcmp (&b, &ones, size)) - abort (); - - if (!__atomic_compare_exchange (&a, &b, &zero, false, __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE)) - abort(); - if (memcmp (&a, &zero, size)) - abort (); - - if (__atomic_compare_exchange (&a, &b, &ones, false, __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE)) - abort(); - if (memcmp (&b, &zero, size)) - abort (); - - return 0; -} - |