Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/atomic-store-4.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* Test __atomic routines for existence and proper execution on 8 byte | |
2 values with each valid memory model. */ | |
3 /* { dg-do run } */ | |
4 /* { dg-require-effective-target sync_long_long_runtime } */ | |
5 /* { dg-options "" } */ | |
6 /* { dg-options "-march=pentium" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ | |
7 | |
8 /* Test the execution of the __atomic_store_n builtin for a long long. */ | |
9 | |
10 extern void abort(void); | |
11 | |
12 long long v, count; | |
13 | |
14 int | |
15 main () | |
16 { | |
17 v = 0; | |
18 count = 0; | |
19 | |
20 __atomic_store_n (&v, count + 1, __ATOMIC_RELAXED); | |
21 if (v != ++count) | |
22 abort (); | |
23 | |
24 __atomic_store_n (&v, count + 1, __ATOMIC_RELEASE); | |
25 if (v != ++count) | |
26 abort (); | |
27 | |
28 __atomic_store_n (&v, count + 1, __ATOMIC_SEQ_CST); | |
29 if (v != ++count) | |
30 abort (); | |
31 | |
32 /* Now test the generic variant. */ | |
33 count++; | |
34 | |
35 __atomic_store (&v, &count, __ATOMIC_RELAXED); | |
36 if (v != count++) | |
37 abort (); | |
38 | |
39 __atomic_store (&v, &count, __ATOMIC_RELEASE); | |
40 if (v != count++) | |
41 abort (); | |
42 | |
43 __atomic_store (&v, &count, __ATOMIC_SEQ_CST); | |
44 if (v != count) | |
45 abort (); | |
46 | |
47 | |
48 return 0; | |
49 } | |
50 |