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