Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/c-c++-common/gomp/loop-3.c @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 1830386684a0 |
children |
line wrap: on
line source
#ifdef __cplusplus extern "C" { #endif int omp_get_thread_num (void); #ifdef __cplusplus } #endif void f1 (int *a) { int i; #pragma omp loop /* { dg-error "'bind' clause not specified on a 'loop' construct not nested inside another OpenMP construct" } */ for (i = 0; i < 64; i++) a[i] = i; } void f2 (int *a) { int i, j; #pragma omp parallel num_threads (4) { int j = omp_get_thread_num (); #pragma omp loop private (i) bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[j * 64 + i] = i; } #pragma omp critical { #pragma omp loop lastprivate (i) bind(teams)/* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[i] = i; } #pragma omp master { #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[i] = i; } #pragma omp sections { #pragma omp loop bind(teams) lastprivate(i) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[i] = i; } #pragma omp single { #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[i] = i; } #pragma omp task { #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[i] = i; } #pragma omp taskgroup { #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[i] = i; } #pragma omp teams { #pragma omp distribute for (j = 0; j < 64; ++j) { #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[64 * j + i] = i; } } #pragma omp for for (j = 0; j < 64; ++j) { #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[64 * j + i] = i; } #pragma omp parallel #pragma omp loop for (j = 0; j < 64; ++j) { #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[64 * j + i] = i; } #pragma omp loop bind(thread) for (j = 0; j < 64; ++j) { #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[64 * j + i] = i; } #pragma omp loop bind(parallel) for (j = 0; j < 64; ++j) { #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[64 * j + i] = i; } #pragma omp for ordered for (j = 0; j < 64; ++j) { #pragma omp ordered threads #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[64 * j + i] = i; } #pragma omp simd for (j = 0; j < 64; ++j) { #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[64 * j + i] = i; } #pragma omp taskloop for (j = 0; j < 64; ++j) { #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[64 * j + i] = i; } #pragma omp target { #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ for (i = 0; i < 64; i++) a[i] = i; } } void f3 (int *a) { int i, j; #pragma omp simd for (j = 0; j < 64; j++) { #pragma omp loop bind(parallel) /* { dg-error "'bind\\(parallel\\)' on a 'loop' construct nested inside 'simd' construct" } */ for (i = 0; i < 64; i++) a[64 * j + i] = i; } }