1 // RUN: %libomp-compile-and-run 2 #include <stdio.h> 3 #include "omp_testsuite.h" 4 5 /* 6 * Checks that false is returned when called from serial region 7 * and true is returned when called within parallel region. 8 */ 9 int test_omp_in_parallel() 10 { 11 int serial; 12 int isparallel; 13 14 serial = 1; 15 isparallel = 0; 16 serial = omp_in_parallel(); 17 18 #pragma omp parallel 19 { 20 #pragma omp single 21 { 22 isparallel = omp_in_parallel(); 23 } 24 } 25 return (!(serial) && isparallel); 26 } 27 28 int main() 29 { 30 int i; 31 int num_failed=0; 32 33 for(i = 0; i < REPETITIONS; i++) { 34 if(!test_omp_in_parallel()) { 35 num_failed++; 36 } 37 } 38 return num_failed; 39 } 40