Mercurial > hg > CbC > CbC_gcc
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 } |