123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- /* PR debug/36617 */
- /* { dg-do run } */
- /* { dg-options "-g -O0" } */
- int
- f1 (void)
- {
- int v1i, v1j, v1k, v1l = 0;
- v1i = 6;
- v1j = 8;
- #pragma omp parallel private (v1k) firstprivate (v1j) shared (v1i) reduction (+:v1l)
- {
- v1k = v1i + v1j;
- {
- int v1m = 1;
- v1l = v1m;
- }
- }
- return v1l;
- }
- int v2k = 9;
- int
- f2 (void)
- {
- int v2i = 6, v2j = 7;
- #pragma omp single private (v2i) firstprivate (v2k)
- {
- int v2l = v2j + v2k;
- v2i = 8;
- v2k = 10;
- v2j = v2l + v2i;
- }
- return v2i + v2j;
- }
- int
- f3 (void)
- {
- int v3i = 6, v3j = 7, v3k = 9;
- #pragma omp parallel
- {
- #pragma omp master
- v3i++;
- #pragma omp single private (v3i) firstprivate (v3k)
- {
- int v3l = v3j + v3k;
- v3i = 8;
- v3k = 10;
- v3j = v3l + v3i;
- }
- #pragma omp atomic
- v3k++;
- }
- return v3i + v3j;
- }
- int v4k = 9, v4l = 0;
- int
- f4 (void)
- {
- int v4i = 6, v4j = 7, v4n = 0;
- #pragma omp sections private (v4i) firstprivate (v4k) reduction (+:v4l)
- {
- #pragma omp section
- {
- int v4m = v4j + v4k;
- v4i = 8;
- v4k = 10;
- v4l++;
- v4n = v4m + v4i;
- }
- #pragma omp section
- {
- int v4o = v4j + v4k;
- v4i = 10;
- v4k = 11;
- v4l++;
- }
- }
- return v4i + v4j + v4l + v4n;
- }
- int
- f5 (void)
- {
- int v5i = 6, v5j = 7, v5k = 9, v5l = 0, v5n = 0, v5p = 0;
- #pragma omp parallel
- {
- #pragma omp master
- v5p++;
- #pragma omp sections private (v5i) firstprivate (v5k) reduction (+:v5l)
- {
- #pragma omp section
- {
- int v5m = v5j + v5k;
- v5i = 8;
- v5k = 10;
- v5l++;
- v5n = v5m + v5i;
- }
- #pragma omp section
- {
- int v5o = v5j + v5k;
- v5i = 10;
- v5k = 11;
- v5l++;
- }
- }
- }
- return v5i + v5j + v5l + v5n + v5p;
- }
- int v6k = 9, v6l = 0;
- int
- f6 (void)
- {
- int v6i = 6, v6j = 7, v6n = 0;
- #pragma omp for private (v6i) firstprivate (v6k) reduction (+:v6l)
- for (v6n = 0; v6n < 3; v6n++)
- {
- int v6m = v6j + v6k;
- v6i = 8;
- v6l++;
- }
- return v6i + v6j + v6k + v6l + v6n;
- }
- int
- f7 (void)
- {
- int v7i = 6, v7j = 7, v7k = 9, v7l = 0, v7n = 0, v7o = 1;
- #pragma omp parallel
- {
- #pragma omp master
- v7o++;
- #pragma omp for private (v7i) firstprivate (v7k) reduction (+:v7l)
- for (v7n = 0; v7n < 3; v7n++)
- {
- int v7m = v7j + v7k;
- v7i = 8;
- v7l++;
- }
- }
- return v7i + v7j + v7k + v7l + v7n;
- }
- int
- main (void)
- {
- f1 ();
- f2 ();
- f3 ();
- f4 ();
- f5 ();
- f6 ();
- f7 ();
- return 0;
- }
|