blob: d09313eab150a35cc3e9f535f3daf8251491abcc [file] [log] [blame]
Jonathan Peyton614c7ef2015-09-21 20:41:31 +00001// 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
Jonathan Peyton37310762016-05-17 21:08:52 +00007 * and true is returned when called within parallel region.
Jonathan Peyton614c7ef2015-09-21 20:41:31 +00008 */
9int 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
28int 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}