Viewing file: nestedfn-4.c (1.11 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* PR middle-end/25261 */ /* { dg-do run } */
#include <omp.h>
extern void abort (void);
int main (void) { int i = 5, j, l = 0; int foo (void) { return i == 6; } int bar (void) { return i - 3; }
omp_set_dynamic (0);
#pragma omp parallel if (foo ()) num_threads (2) if (omp_get_num_threads () != 1) #pragma omp atomic l++;
#pragma omp parallel for schedule (static, bar ()) num_threads (2) \ reduction (|:l) for (j = 0; j < 4; j++) if (omp_get_thread_num () != (j >= 2)) #pragma omp atomic l++;
i++;
#pragma omp parallel if (foo ()) num_threads (2) if (omp_get_num_threads () != 2) #pragma omp atomic l++;
#pragma omp parallel for schedule (static, bar ()) num_threads (2) \ reduction (|:l) for (j = 0; j < 6; j++) if (omp_get_thread_num () != (j >= 3)) #pragma omp atomic l++;
#pragma omp parallel num_threads (4) reduction (|:l) if (!foo () || bar () != 3) #pragma omp atomic l++;
i++;
#pragma omp parallel num_threads (4) reduction (|:l) if (foo () || bar () != 4) #pragma omp atomic l++;
if (l) abort ();
return 0; }
|