44 lines · c
1// RUN: %libomp-compile-and-run2#include <stdio.h>3#include <math.h>4#include "omp_testsuite.h"5#include "omp_my_sleep.h"6 7int test_omp_task_if()8{9 int condition_false;10 int count;11 int result;12 13 count=0;14 condition_false = (count == 1);15 #pragma omp parallel16 {17 #pragma omp single18 {19 #pragma omp task if (condition_false) shared(count, result)20 {21 my_sleep (SLEEPTIME);22 #pragma omp critical23 result = (0 == count);24 } /* end of omp task */25 #pragma omp critical26 count = 1;27 } /* end of single */28 } /*end of parallel */29 return result;30}31 32int main()33{34 int i;35 int num_failed=0;36 37 for(i = 0; i < REPETITIONS; i++) {38 if(!test_omp_task_if()) {39 num_failed++;40 }41 }42 return num_failed;43}44