| /* { dg-do compile } */ |
| /* { dg-require-effective-target tls } */ |
| |
| extern int omp_get_num_threads (void); |
| int x, y, t, z[1000]; |
| #pragma omp threadprivate(x) |
| void |
| a24 (int a) |
| { |
| const int c = 1; |
| int i = 0; |
| int l = 0; |
| #pragma omp parallel default(none) private(a) shared(z) |
| { |
| int j = omp_get_num_threads (); |
| /* O.K. - j is declared within parallel region */ |
| /* O.K. - a is listed in private clause */ |
| /* - z is listed in shared clause */ |
| x = c; /* O.K. - x is threadprivate */ |
| /* - c has const-qualified type */ |
| z[i] = y; |
| /* { dg-error "'i' not specified" "" { target *-*-* } 21 } */ |
| /* { dg-error "enclosing parallel" "" { target *-*-* } 13 } */ |
| /* { dg-error "'y' not specified" "" { target *-*-* } 21 } */ |
| #pragma omp for firstprivate(y) |
| for (i = 0; i < 10; i++) |
| { |
| z[i] = y; /* O.K. - i is the loop iteration variable */ |
| /* - y is listed in firstprivate clause */ |
| } |
| z[l] = t; |
| /* { dg-error "'l' not specified" "" { target *-*-* } 31 } */ |
| /* { dg-error "'t' not specified" "" { target *-*-* } 31 } */ |
| } |
| } |