PR middle-end/85602 - -Wsizeof-pointer-memaccess for strncat with size of source
[official-gcc.git] / gcc / testsuite / c-c++-common / gomp / ordered-3.c
blobe7fd738f6697c013be584548508abada9ad7731f
1 /* { dg-do compile } */
2 /* { dg-options "-fopenmp" } */
4 void
5 foo (void)
7 int i;
8 #pragma omp for ordered
9 for (i = 0; i < 64; i++)
11 #pragma omp ordered
14 #pragma omp for ordered
15 for (i = 0; i < 64; i++)
17 #pragma omp ordered threads
20 #pragma omp for ordered
21 for (i = 0; i < 64; i++)
23 #pragma omp ordered threads threads /* { dg-error "too many .threads. clauses" } */
26 #pragma omp simd
27 for (i = 0; i < 64; i++)
29 #pragma omp ordered simd
32 #pragma omp simd
33 for (i = 0; i < 64; i++)
35 #pragma omp ordered simd simd /* { dg-error "too many .simd. clauses" } */
38 #pragma omp for simd ordered
39 for (i = 0; i < 64; i++)
41 #pragma omp ordered threads, simd
44 #pragma omp for simd ordered
45 for (i = 0; i < 64; i++)
47 #pragma omp ordered threads, simd, threads, simd /* { dg-error "too many .threads. clauses" } */
48 ; /* { dg-error "too many .simd. clauses" "" { target *-*-* } .-1 } */
50 #pragma omp for simd ordered(1) /* { dg-error ".ordered. clause with parameter may not be specified on .#pragma omp for simd. construct" } */
51 for (i = 0; i < 64; i++)
53 #pragma omp ordered depend(sink: i - 1) /* { dg-error "clause must be closely nested inside a loop with .ordered. clause with a parameter" } */
54 #pragma omp ordered depend(source) /* { dg-error "clause must be closely nested inside a loop with .ordered. clause with a parameter" } */
56 #pragma omp parallel for simd ordered(1) /* { dg-error ".ordered. clause with parameter may not be specified on .#pragma omp parallel for simd. construct" } */
57 for (i = 0; i < 64; i++)
59 #pragma omp ordered depend(sink: i - 1) /* { dg-error "clause must be closely nested inside a loop with .ordered. clause with a parameter" } */
60 #pragma omp ordered depend(source) /* { dg-error "clause must be closely nested inside a loop with .ordered. clause with a parameter" } */
62 #pragma omp parallel for ordered
63 for (i = 0; i < 64; i++)
65 #pragma omp ordered depend(sink: i - 1) /* { dg-error "clause must be closely nested inside a loop with .ordered. clause with a parameter" } */
66 #pragma omp ordered depend(source) /* { dg-error "clause must be closely nested inside a loop with .ordered. clause with a parameter" } */
68 #pragma omp parallel for
69 for (i = 0; i < 64; i++)
71 #pragma omp ordered depend(sink: i - 1) /* { dg-error "clause must be closely nested inside a loop with .ordered. clause with a parameter" } */
72 #pragma omp ordered depend(source) /* { dg-error "clause must be closely nested inside a loop with .ordered. clause with a parameter" } */
76 void
77 bar (int x)
79 switch (x)
81 case 0:
82 #pragma omp ordered
84 break;
85 case 1:
86 #pragma omp ordered threads
88 break;
89 case 2:
90 #pragma omp ordered threads, threads /* { dg-error "too many .threads. clauses" } */
92 break;
96 void
97 baz (void)
99 #pragma omp ordered simd
101 #pragma omp ordered simd, simd /* { dg-error "too many .simd. clauses" } */