/* { dg-do compile } */ /* { dg-options "-fopenmp" } */ void foo (void) { int i; #pragma omp for ordered /* { dg-error "'ordered' clause used with generated loops" } */ #pragma omp tile sizes (2) for (i = 0; i < 64; i++) { #pragma omp ordered ; } #pragma omp for ordered /* { dg-error "'ordered' clause used with generated loops" } */ #pragma omp tile sizes (2) for (i = 0; i < 64; i++) { #pragma omp ordered threads ; } #pragma omp for simd ordered /* { dg-error "'ordered' clause used with generated loops" "" { target c } } */ #pragma omp tile sizes (2) /* { dg-error "'ordered' clause used with generated loops" "" { target c++ } } */ for (i = 0; i < 64; i++) { #pragma omp ordered threads, simd ; } #pragma omp for simd ordered(1) /* { dg-error "'ordered' clause used with generated loops" "" { target c } } */ #pragma omp tile sizes (2) /* { dg-error "'ordered' clause used with generated loops" "" { target c++ } } */ for (i = 0; i < 64; i++) { #pragma omp ordered depend(sink: i - 1) #pragma omp ordered depend(source) } #pragma omp for simd ordered(1) /* { dg-error "'ordered' clause used with generated loops" "" { target c } } */ #pragma omp tile sizes (2) /* { dg-error "'ordered' clause used with generated loops" "" { target c++ } } */ for (i = 0; i < 64; i++) { #pragma omp ordered doacross(sink: i - 1) #pragma omp ordered doacross(source:omp_cur_iteration) } #pragma omp parallel for ordered /* { dg-error "'ordered' clause used with generated loops" "" { target c } } */ #pragma omp tile sizes (2) /* { dg-error "'ordered' clause used with generated loops" "" { target c++ } } */ for (i = 0; i < 64; i++) { #pragma omp ordered depend(sink: i - 1) #pragma omp ordered depend(source) } #pragma omp parallel for ordered /* { dg-error "'ordered' clause used with generated loops" "" { target c } } */ #pragma omp tile sizes (2) /* { dg-error "'ordered' clause used with generated loops" "" { target c++ } } */ for (i = 0; i < 64; i++) { #pragma omp ordered doacross(sink: i - 1) #pragma omp ordered doacross(source:) } #pragma omp for ordered(1) /* { dg-error "'ordered' clause used with generated loops" } */ #pragma omp tile sizes (2) for (i = 0; i < 64; i++) { #pragma omp ordered depend(sink: i - 1) #pragma omp ordered depend(source) } #pragma omp for ordered(1) /* { dg-error "'ordered' clause used with generated loops" } */ #pragma omp tile sizes (2) for (i = 0; i < 64; i++) { #pragma omp ordered doacross(sink: i - 1) #pragma omp ordered doacross(source:omp_cur_iteration) } } void bar (void) { int i; #pragma omp for ordered /* { dg-error "'ordered' clause used with generated loops" } */ #pragma omp unroll partial (2) for (i = 0; i < 64; i++) { #pragma omp ordered ; } #pragma omp for ordered /* { dg-error "'ordered' clause used with generated loops" } */ #pragma omp unroll partial (2) for (i = 0; i < 64; i++) { #pragma omp ordered threads ; } #pragma omp for simd ordered /* { dg-error "'ordered' clause used with generated loops" "" { target c } } */ #pragma omp unroll partial (2) /* { dg-error "'ordered' clause used with generated loops" "" { target c++ } } */ for (i = 0; i < 64; i++) { #pragma omp ordered threads, simd ; } #pragma omp for simd ordered(1) /* { dg-error "'ordered' clause used with generated loops" "" { target c } } */ #pragma omp unroll partial (2) /* { dg-error "'ordered' clause used with generated loops" "" { target c++ } } */ for (i = 0; i < 64; i++) { #pragma omp ordered depend(sink: i - 1) #pragma omp ordered depend(source) } #pragma omp for simd ordered(1) /* { dg-error "'ordered' clause used with generated loops" "" { target c } } */ #pragma omp unroll partial (2) /* { dg-error "'ordered' clause used with generated loops" "" { target c++ } } */ for (i = 0; i < 64; i++) { #pragma omp ordered doacross(sink: i - 1) #pragma omp ordered doacross(source:omp_cur_iteration) } #pragma omp parallel for ordered /* { dg-error "'ordered' clause used with generated loops" "" { target c } } */ #pragma omp unroll partial (2) /* { dg-error "'ordered' clause used with generated loops" "" { target c++ } } */ for (i = 0; i < 64; i++) { #pragma omp ordered depend(sink: i - 1) #pragma omp ordered depend(source) } #pragma omp parallel for ordered /* { dg-error "'ordered' clause used with generated loops" "" { target c } } */ #pragma omp unroll partial (2) /* { dg-error "'ordered' clause used with generated loops" "" { target c++ } } */ for (i = 0; i < 64; i++) { #pragma omp ordered doacross(sink: i - 1) #pragma omp ordered doacross(source:) } #pragma omp for ordered(1) /* { dg-error "'ordered' clause used with generated loops" } */ #pragma omp unroll partial (2) for (i = 0; i < 64; i++) { #pragma omp ordered depend(sink: i - 1) #pragma omp ordered depend(source) } #pragma omp for ordered(1) /* { dg-error "'ordered' clause used with generated loops" } */ #pragma omp unroll partial (2) for (i = 0; i < 64; i++) { #pragma omp ordered doacross(sink: i - 1) #pragma omp ordered doacross(source:omp_cur_iteration) } }