diff options
Diffstat (limited to 'openmp/testsuite/c/omp_task_imp_firstprivate.c')
| -rw-r--r-- | openmp/testsuite/c/omp_task_imp_firstprivate.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/openmp/testsuite/c/omp_task_imp_firstprivate.c b/openmp/testsuite/c/omp_task_imp_firstprivate.c new file mode 100644 index 00000000000..bb8f0ef1d79 --- /dev/null +++ b/openmp/testsuite/c/omp_task_imp_firstprivate.c @@ -0,0 +1,51 @@ +<ompts:test> +<ompts:testdescription> Test to see if implied private works properly</ompts:testdescription> +<ompts:ompversion>3.0</ompts:ompversion> +<ompts:directive>omp task</ompts:directive> +<ompts:dependences>omp single</ompts:dependences> +<ompts:testcode> +#include <stdio.h> +#include <math.h> +#include "omp_testsuite.h" + + + + +/* Utility function do spend some time in a loop */ +int <ompts:testcode:functionname>omp_task_imp_firstprivate</ompts:testcode:functionname> (FILE * logFile) +{ + int i=5; + int k = 0; + int result = 0; + int task_result = 1; + #pragma omp parallel firstprivate(i) + { + #pragma omp single + { + + + for (k = 0; k < NUM_TASKS; k++) + { + #pragma omp task shared(result , task_result<ompts:crosscheck>, i</ompts:crosscheck>) + { + int j; + //check if i is private + if(i != 5) + task_result = 0; + + for(j = 0; j < NUM_TASKS; j++) + i++; + //this should be firstprivate implicitly + } + } + + #pragma omp taskwait + result = (task_result && i==5); + } + + } + + return result; +} +</ompts:testcode> +</ompts:test> |

