comparison libgomp/testsuite/libgomp.c/atomic-13.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 /* { dg-do run } */
2
3 extern void abort (void);
4 long long l, m;
5 int i, j;
6
7 void
8 foo (void)
9 {
10 #pragma omp atomic read
11 i = l;
12 #pragma omp atomic read
13 m = j;
14 if (i != 77 || m != 88)
15 abort ();
16 #pragma omp atomic write
17 l = 1 + i + 6 * 1;
18 #pragma omp atomic write
19 j = 170 - 170 + m + 1 * 7;
20 #pragma omp atomic capture
21 i = l += 4;
22 #pragma omp atomic capture
23 m = j += 4;
24 if (i != 88 || m != 99)
25 abort ();
26 #pragma omp atomic capture
27 {
28 i = l;
29 l += 4;
30 }
31 #pragma omp atomic capture
32 {
33 m = j;
34 j += 4;
35 }
36 if (i != 88 || m != 99)
37 abort ();
38 #pragma omp atomic capture
39 {
40 l += 4;
41 i = l;
42 }
43 #pragma omp atomic capture
44 {
45 j += 4;
46 m = j;
47 }
48 if (i != 96 || m != 107)
49 abort ();
50 }
51
52 int
53 main ()
54 {
55 l = 77;
56 j = 88;
57 foo ();
58 return 0;
59 }