Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/atomic-store-3.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 4 byte | |
2 values with each valid memory model. */ | |
3 /* { dg-do run } */ | |
4 /* { dg-require-effective-target sync_int_long } */ | |
5 | |
6 /* Test the execution of the __atomic_store_n builtin for an int. */ | |
7 | |
8 extern void abort(void); | |
9 | |
10 int v, count; | |
11 | |
12 int | |
13 main () | |
14 { | |
15 v = 0; | |
16 count = 0; | |
17 | |
18 __atomic_store_n (&v, count + 1, __ATOMIC_RELAXED); | |
19 if (v != ++count) | |
20 abort (); | |
21 | |
22 __atomic_store_n (&v, count + 1, __ATOMIC_RELEASE); | |
23 if (v != ++count) | |
24 abort (); | |
25 | |
26 __atomic_store_n (&v, count + 1, __ATOMIC_SEQ_CST); | |
27 if (v != ++count) | |
28 abort (); | |
29 | |
30 /* Now test the generic variant. */ | |
31 count++; | |
32 | |
33 __atomic_store (&v, &count, __ATOMIC_RELAXED); | |
34 if (v != count++) | |
35 abort (); | |
36 | |
37 __atomic_store (&v, &count, __ATOMIC_RELEASE); | |
38 if (v != count++) | |
39 abort (); | |
40 | |
41 __atomic_store (&v, &count, __ATOMIC_SEQ_CST); | |
42 if (v != count) | |
43 abort (); | |
44 | |
45 | |
46 return 0; | |
47 } | |
48 |