Mercurial > hg > CbC > CbC_gcc
comparison libgomp/testsuite/libgomp.c++/task-1.C @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children | b7f97abdc517 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
1 extern "C" void abort (); | |
2 | |
3 int a = 18; | |
4 | |
5 void | |
6 f1 (int i, int j, int k) | |
7 { | |
8 int l = 6, m = 7, n = 8; | |
9 #pragma omp task private(j, m) shared(k, n) | |
10 { | |
11 j = 6; | |
12 m = 5; | |
13 if (++a != 19 || ++i != 9 || j != 6 || ++l != 7 || m != 5 || ++n != 9) | |
14 #pragma omp atomic | |
15 k++; | |
16 } | |
17 #pragma omp taskwait | |
18 if (a != 19 || i != 8 || j != 26 || k != 0 || l != 6 || m != 7 || n != 9) | |
19 abort (); | |
20 } | |
21 | |
22 int v1 = 1, v2 = 2, v5 = 5; | |
23 int err; | |
24 | |
25 void | |
26 f2 (void) | |
27 { | |
28 int v3 = 3; | |
29 #pragma omp sections private (v1) firstprivate (v2) | |
30 { | |
31 #pragma omp section | |
32 { | |
33 int v4 = 4; | |
34 v1 = 7; | |
35 #pragma omp task | |
36 { | |
37 if (++v1 != 8 || ++v2 != 3 || ++v3 != 4 || ++v4 != 5 || ++v5 != 6) | |
38 err = 1; | |
39 } | |
40 #pragma omp taskwait | |
41 if (v1 != 7 || v2 != 2 || v3 != 3 || v4 != 4 || v5 != 6) | |
42 abort (); | |
43 if (err) | |
44 abort (); | |
45 } | |
46 } | |
47 } | |
48 | |
49 void | |
50 f3 (int i, int j, int k) | |
51 { | |
52 int l = 6, m = 7, n = 8; | |
53 #pragma omp task private(j, m) shared(k, n) untied | |
54 { | |
55 j = 6; | |
56 m = 5; | |
57 if (++a != 19 || ++i != 9 || j != 6 || ++l != 7 || m != 5 || ++n != 9) | |
58 #pragma omp atomic | |
59 k++; | |
60 } | |
61 #pragma omp taskwait | |
62 if (a != 19 || i != 8 || j != 26 || k != 0 || l != 6 || m != 7 || n != 9) | |
63 abort (); | |
64 } | |
65 | |
66 int | |
67 main () | |
68 { | |
69 f1 (8, 26, 0); | |
70 f2 (); | |
71 a = 18; | |
72 f3 (8, 26, 0); | |
73 a = 18; | |
74 #pragma omp parallel num_threads(4) | |
75 { | |
76 #pragma omp master | |
77 { | |
78 f1 (8, 26, 0); | |
79 a = 18; | |
80 f3 (8, 26, 0); | |
81 } | |
82 } | |
83 } |