1// RUN: %libomp-c99-compile-and-run
2//
3#include <stdlib.h>
4#include <stdio.h>
5#include <math.h>
6#include <omp.h>
7
8#define TYPE long
9#define MAX_ITER (TYPE)((TYPE)1000000)
10#define EVERY (TYPE)((TYPE)100000)
11
12int main(int argc, char* argv[]) {
13 TYPE x = MAX_ITER;
14 omp_set_max_active_levels(2);
15 omp_set_num_threads(2);
16 #pragma omp parallel for schedule(nonmonotonic:dynamic,1)
17 for (TYPE i = 0; i < x; i++) {
18 int tid = omp_get_thread_num();
19 omp_set_num_threads(1);
20 #pragma omp parallel proc_bind(spread)
21 {
22 if (i % EVERY == (TYPE)0)
23 printf(format: "Outer thread %d at iter %ld\n", tid, i);
24 }
25 }
26 printf(format: "passed\n");
27 return 0;
28}
29

source code of openmp/runtime/test/worksharing/for/omp_par_in_loop.c