Mercurial > hg > CbC > CbC_gcc
comparison libgomp/testsuite/libgomp.c/pr39154.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 | 04ced10e8804 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
1 /* PR middle-end/39154 */ | |
2 /* { dg-do compile } */ | |
3 /* { dg-options "-O2 -std=gnu99" } */ | |
4 | |
5 extern void abort (void); | |
6 | |
7 int n = 20; | |
8 | |
9 int | |
10 main (void) | |
11 { | |
12 int a[n], b[n][n]; | |
13 | |
14 #pragma omp parallel for | |
15 for (int i = 0; i < n; i++) | |
16 { | |
17 a[i] = i + 1; | |
18 #pragma omp parallel for | |
19 for (int j = 0; j < n; j++) | |
20 b[i][j] = a[i]; | |
21 } | |
22 | |
23 for (int i = 0; i < n; i++) | |
24 { | |
25 for (int j = 0; j < n; j++) | |
26 if (b[i][j] != i + 1) | |
27 abort (); | |
28 if (a[i] != i + 1) | |
29 abort (); | |
30 } | |
31 | |
32 #pragma omp parallel for shared (n, a, b) | |
33 for (int i = 0; i < n; i++) | |
34 { | |
35 a[i] = i + 3; | |
36 #pragma omp parallel for | |
37 for (int j = 0; j < n; j++) | |
38 b[i][j] = a[i]; | |
39 } | |
40 | |
41 for (int i = 0; i < n; i++) | |
42 { | |
43 for (int j = 0; j < n; j++) | |
44 if (b[i][j] != i + 3) | |
45 abort (); | |
46 if (a[i] != i + 3) | |
47 abort (); | |
48 } | |
49 | |
50 #pragma omp parallel for | |
51 for (int i = 0; i < n; i++) | |
52 { | |
53 a[i] = i + 5; | |
54 #pragma omp parallel for shared (n, a, b) | |
55 for (int j = 0; j < n; j++) | |
56 b[i][j] = a[i]; | |
57 } | |
58 | |
59 for (int i = 0; i < n; i++) | |
60 { | |
61 for (int j = 0; j < n; j++) | |
62 if (b[i][j] != i + 5) | |
63 abort (); | |
64 if (a[i] != i + 5) | |
65 abort (); | |
66 } | |
67 | |
68 #pragma omp parallel for shared (n, a, b) | |
69 for (int i = 0; i < n; i++) | |
70 { | |
71 a[i] = i + 7; | |
72 #pragma omp parallel for shared (n, a, b) | |
73 for (int j = 0; j < n; j++) | |
74 b[i][j] = a[i]; | |
75 } | |
76 | |
77 for (int i = 0; i < n; i++) | |
78 { | |
79 for (int j = 0; j < n; j++) | |
80 if (b[i][j] != i + 7) | |
81 abort (); | |
82 if (a[i] != i + 7) | |
83 abort (); | |
84 } | |
85 | |
86 #pragma omp parallel for private (a, b) | |
87 for (int i = 0; i < n; i++) | |
88 { | |
89 a[i] = i + 1; | |
90 #pragma omp parallel for | |
91 for (int j = 0; j < n; j++) | |
92 b[i][j] = a[i]; | |
93 } | |
94 | |
95 #pragma omp parallel for private (a, b) | |
96 for (int i = 0; i < n; i++) | |
97 { | |
98 a[i] = i + 1; | |
99 #pragma omp parallel for private (b) | |
100 for (int j = 0; j < n; j++) | |
101 b[i][j] = a[i]; | |
102 } | |
103 | |
104 return 0; | |
105 } |