blob: ee798f4dd1b641f997794cbbecc02b2c1f6155d9 [file] [log] [blame]
/* { 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)
}
}