diff options
Diffstat (limited to 'libgomp/testsuite/libgomp.c/pr70680-2.c')
-rw-r--r-- | libgomp/testsuite/libgomp.c/pr70680-2.c | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.c/pr70680-2.c b/libgomp/testsuite/libgomp.c/pr70680-2.c new file mode 100644 index 0000000000..0aada78f0c --- /dev/null +++ b/libgomp/testsuite/libgomp.c/pr70680-2.c @@ -0,0 +1,79 @@ +/* PR middle-end/70680 */ + +int v; + +void +f1 (void) +{ + int i = 0, j = 0; +#pragma omp task default(shared) if(0) + { +#pragma omp simd collapse(2) + for (i = 0; i < 10; i++) + for (j = 0; j < 10; j++) + ; + v = i + j; + } + if (i != 10 || j != 10) + __builtin_abort (); +} + +void +f2 (void) +{ + int i = 0, j = 0; +#pragma omp task default(shared) if(0) + { +#pragma omp simd collapse(2) + for (i = 0; i < 10; i++) + for (j = 0; j < 10; j++) + ; + } + if (i != 10 || j != 10) + __builtin_abort (); +} + +void +f3 (void) +{ + int i = 0, j = 0; +#pragma omp task default(shared) if(0) + { +#pragma omp simd collapse(2) lastprivate (i, j) + for (i = 0; i < 10; i++) + for (j = 0; j < 10; j++) + ; + v = i + j; + } + if (i != 10 || j != 10) + __builtin_abort (); +} + +void +f4 (void) +{ + int i = 0, j = 0; +#pragma omp task default(shared) if(0) + { +#pragma omp simd collapse(2) lastprivate (i, j) + for (i = 0; i < 10; i++) + for (j = 0; j < 10; j++) + ; + } + if (i != 10 || j != 10) + __builtin_abort (); +} + +int +main () +{ + f1 (); + if (v++ != 20) + __builtin_abort (); + f2 (); + f3 (); + if (v++ != 20) + __builtin_abort (); + f4 (); + return 0; +} |