| /* PR middle-end/89002 */ | |
| extern void abort (void); | |
| int | |
| foo (int x) | |
| { | |
| int a; | |
| int *p = &a; | |
| #pragma omp taskloop lastprivate (a) | |
| for (a = 0; a < x; ++a) | |
| ; | |
| return *p; | |
| } | |
| int | |
| bar (int x) | |
| { | |
| int a; | |
| int *p = &a; | |
| #pragma omp parallel | |
| #pragma omp single | |
| #pragma omp taskloop lastprivate (a) | |
| for (a = 0; a < x; ++a) | |
| ; | |
| return *p; | |
| } | |
| int | |
| main () | |
| { | |
| #pragma omp parallel | |
| #pragma omp single | |
| { | |
| if (foo (4) != 4) | |
| abort (); | |
| } | |
| if (bar (6) != 6) | |
| abort (); | |
| return 0; | |
| } |