0
|
1 /* PR debug/36617 */
|
|
2 /* { dg-do run } */
|
111
|
3 /* { dg-options "-g -O0" } */
|
0
|
4
|
|
5 int
|
|
6 f1 (void)
|
|
7 {
|
|
8 int v1i, v1j, v1k, v1l = 0;
|
|
9 v1i = 6;
|
|
10 v1j = 8;
|
|
11 #pragma omp parallel private (v1k) firstprivate (v1j) shared (v1i) reduction (+:v1l)
|
|
12 {
|
|
13 v1k = v1i + v1j;
|
|
14 {
|
|
15 int v1m = 1;
|
|
16 v1l = v1m;
|
|
17 }
|
|
18 }
|
|
19 return v1l;
|
|
20 }
|
|
21
|
|
22 int v2k = 9;
|
|
23
|
|
24 int
|
|
25 f2 (void)
|
|
26 {
|
|
27 int v2i = 6, v2j = 7;
|
|
28 #pragma omp single private (v2i) firstprivate (v2k)
|
|
29 {
|
|
30 int v2l = v2j + v2k;
|
|
31 v2i = 8;
|
|
32 v2k = 10;
|
|
33 v2j = v2l + v2i;
|
|
34 }
|
|
35 return v2i + v2j;
|
|
36 }
|
|
37
|
|
38 int
|
|
39 f3 (void)
|
|
40 {
|
|
41 int v3i = 6, v3j = 7, v3k = 9;
|
|
42 #pragma omp parallel
|
|
43 {
|
|
44 #pragma omp master
|
|
45 v3i++;
|
|
46 #pragma omp single private (v3i) firstprivate (v3k)
|
|
47 {
|
|
48 int v3l = v3j + v3k;
|
|
49 v3i = 8;
|
|
50 v3k = 10;
|
|
51 v3j = v3l + v3i;
|
|
52 }
|
|
53 #pragma omp atomic
|
|
54 v3k++;
|
|
55 }
|
|
56 return v3i + v3j;
|
|
57 }
|
|
58
|
|
59 int v4k = 9, v4l = 0;
|
|
60
|
|
61 int
|
|
62 f4 (void)
|
|
63 {
|
|
64 int v4i = 6, v4j = 7, v4n = 0;
|
|
65 #pragma omp sections private (v4i) firstprivate (v4k) reduction (+:v4l)
|
|
66 {
|
|
67 #pragma omp section
|
|
68 {
|
|
69 int v4m = v4j + v4k;
|
|
70 v4i = 8;
|
|
71 v4k = 10;
|
|
72 v4l++;
|
|
73 v4n = v4m + v4i;
|
|
74 }
|
|
75 #pragma omp section
|
|
76 {
|
|
77 int v4o = v4j + v4k;
|
|
78 v4i = 10;
|
|
79 v4k = 11;
|
|
80 v4l++;
|
|
81 }
|
|
82 }
|
|
83 return v4i + v4j + v4l + v4n;
|
|
84 }
|
|
85
|
|
86 int
|
|
87 f5 (void)
|
|
88 {
|
|
89 int v5i = 6, v5j = 7, v5k = 9, v5l = 0, v5n = 0, v5p = 0;
|
|
90 #pragma omp parallel
|
|
91 {
|
|
92 #pragma omp master
|
|
93 v5p++;
|
|
94 #pragma omp sections private (v5i) firstprivate (v5k) reduction (+:v5l)
|
|
95 {
|
|
96 #pragma omp section
|
|
97 {
|
|
98 int v5m = v5j + v5k;
|
|
99 v5i = 8;
|
|
100 v5k = 10;
|
|
101 v5l++;
|
|
102 v5n = v5m + v5i;
|
|
103 }
|
|
104 #pragma omp section
|
|
105 {
|
|
106 int v5o = v5j + v5k;
|
|
107 v5i = 10;
|
|
108 v5k = 11;
|
|
109 v5l++;
|
|
110 }
|
|
111 }
|
|
112 }
|
|
113 return v5i + v5j + v5l + v5n + v5p;
|
|
114 }
|
|
115
|
|
116 int v6k = 9, v6l = 0;
|
|
117
|
|
118 int
|
|
119 f6 (void)
|
|
120 {
|
|
121 int v6i = 6, v6j = 7, v6n = 0;
|
|
122 #pragma omp for private (v6i) firstprivate (v6k) reduction (+:v6l)
|
|
123 for (v6n = 0; v6n < 3; v6n++)
|
|
124 {
|
|
125 int v6m = v6j + v6k;
|
|
126 v6i = 8;
|
|
127 v6l++;
|
|
128 }
|
|
129 return v6i + v6j + v6k + v6l + v6n;
|
|
130 }
|
|
131
|
|
132 int
|
|
133 f7 (void)
|
|
134 {
|
|
135 int v7i = 6, v7j = 7, v7k = 9, v7l = 0, v7n = 0, v7o = 1;
|
|
136 #pragma omp parallel
|
|
137 {
|
|
138 #pragma omp master
|
|
139 v7o++;
|
|
140 #pragma omp for private (v7i) firstprivate (v7k) reduction (+:v7l)
|
|
141 for (v7n = 0; v7n < 3; v7n++)
|
|
142 {
|
|
143 int v7m = v7j + v7k;
|
|
144 v7i = 8;
|
|
145 v7l++;
|
|
146 }
|
|
147 }
|
|
148 return v7i + v7j + v7k + v7l + v7n;
|
|
149 }
|
|
150
|
|
151 int
|
|
152 main (void)
|
|
153 {
|
|
154 f1 ();
|
|
155 f2 ();
|
|
156 f3 ();
|
|
157 f4 ();
|
|
158 f5 ();
|
|
159 f6 ();
|
|
160 f7 ();
|
|
161 return 0;
|
|
162 }
|