c++: prvalue of array type [PR111286]
[official-gcc.git] / gcc / testsuite / c-c++-common / gomp / clauses-4.c
blob11e7634e14b9b10342874f5f26e3d357c8495b3e
1 int t;
2 #pragma omp threadprivate (t)
4 void
5 foo (int y, short z)
7 int x;
8 #pragma omp target teams map (from: x)
9 #pragma omp distribute simd linear (x : 2)
10 for (x = 0; x < 64; x += 2)
12 #pragma omp target teams map (from: x)
13 #pragma omp distribute parallel for simd linear (x)
14 for (x = 0; x < 64; x++)
16 #pragma omp target teams map (tofrom: y)
17 #pragma omp distribute simd linear (y : 2) /* { dg-error ".linear. clause for variable other than loop iterator specified on construct combined with .distribute." } */
18 for (x = 0; x < 64; x += 2)
19 y += 2;
20 #pragma omp target teams map (tofrom: z)
21 #pragma omp distribute parallel for simd linear (z) /* { dg-error ".linear. clause for variable other than loop iterator specified on construct combined with .distribute." } */
22 for (x = 0; x < 64; x++)
23 z++;
24 #pragma omp target teams map (tofrom: z)
25 #pragma omp distribute parallel for linear (z: 4) /* { dg-error ".linear. is not valid for .#pragma omp distribute parallel for." } */
26 for (x = 0; x < 64; x++)
27 z += 4;
28 #pragma omp target map (from: x)
29 #pragma omp teams distribute simd linear (x : 2)
30 for (x = 0; x < 64; x += 2)
32 #pragma omp target map (from: x)
33 #pragma omp teams distribute parallel for simd linear (x)
34 for (x = 0; x < 64; x++)
36 #pragma omp target map (tofrom: y)
37 #pragma omp teams distribute simd linear (y : 2) /* { dg-error ".linear. clause for variable other than loop iterator specified on construct combined with .distribute." } */
38 for (x = 0; x < 64; x += 2)
39 y += 2;
40 #pragma omp target map (tofrom: z)
41 #pragma omp teams distribute parallel for simd linear (z) /* { dg-error ".linear. clause for variable other than loop iterator specified on construct combined with .distribute." } */
42 for (x = 0; x < 64; x++)
43 z++;
44 #pragma omp target map (tofrom: z)
45 #pragma omp teams distribute parallel for linear (z: 4) /* { dg-error ".linear. is not valid for .#pragma omp teams distribute parallel for." } */
46 for (x = 0; x < 64; x++)
47 z += 4;
48 #pragma omp target parallel copyin (t) /* { dg-error ".copyin. is not valid for .#pragma omp target parallel." } */
50 #pragma omp target parallel for copyin (t) /* { dg-error ".copyin. is not valid for .#pragma omp target parallel for." } */
51 for (x = 0; x < 64; x++)
53 #pragma omp target parallel for simd copyin (t) /* { dg-error ".copyin. is not valid for .#pragma omp target parallel for simd." } */
54 for (x = 0; x < 64; x++)
56 #pragma omp target teams
57 #pragma omp distribute parallel for ordered /* { dg-error ".ordered. is not valid for .#pragma omp distribute parallel for." } */
58 for (x = 0; x < 64; x++)
60 #pragma omp ordered /* { dg-error ".ordered. region must be closely nested inside a loop region with an .ordered. clause" } */
63 #pragma omp target teams
64 #pragma omp distribute parallel for simd ordered /* { dg-error ".ordered. is not valid for .#pragma omp distribute parallel for simd." } */
65 for (x = 0; x < 64; x++)
67 #pragma omp ordered simd, threads
70 #pragma omp target
71 #pragma omp teams distribute parallel for ordered /* { dg-error ".ordered. is not valid for .#pragma omp teams distribute parallel for." } */
72 for (x = 0; x < 64; x++)
74 #pragma omp ordered /* { dg-error ".ordered. region must be closely nested inside a loop region with an .ordered. clause" } */
77 #pragma omp target
78 #pragma omp teams distribute parallel for simd ordered /* { dg-error ".ordered. is not valid for .#pragma omp teams distribute parallel for simd." } */
79 for (x = 0; x < 64; x++)
81 #pragma omp ordered simd, threads
84 #pragma omp target teams distribute parallel for ordered /* { dg-error ".ordered. is not valid for .#pragma omp target teams distribute parallel for." } */
85 for (x = 0; x < 64; x++)
87 #pragma omp ordered /* { dg-error ".ordered. region must be closely nested inside a loop region with an .ordered. clause" } */
90 #pragma omp target teams distribute parallel for simd ordered /* { dg-error ".ordered. is not valid for .#pragma omp target teams distribute parallel for simd." } */
91 for (x = 0; x < 64; x++)
93 #pragma omp ordered simd, threads
96 #pragma omp simd
97 for (x = 0; x < 64; x++)
99 #pragma omp ordered threads simd /* { dg-error ".ordered simd threads. must be closely nested inside of .for simd. region" } */
102 #pragma omp for
103 for (x = 0; x < 64; x++)
105 #pragma omp simd
106 for (y = 0; y < 16; y++)
108 #pragma omp ordered simd threads /* { dg-error ".ordered simd threads. must be closely nested inside of .for simd. region" } */
112 #pragma omp for simd
113 for (x = 0; x < 64; x++)
115 #pragma omp ordered threads simd