Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/gomp/this-1.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { dg-do compile } // { dg-options "-fopenmp" } struct S { #pragma omp declare simd linear(this) // { dg-error "is not a function argument" } static void foo (); void bar (); }; void S::bar () { #pragma omp parallel firstprivate (this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } ; #pragma omp parallel for lastprivate (this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } for (int i = 0; i < 10; i++) ; #pragma omp parallel shared (this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } ; #pragma omp for linear (this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } for (int i = 0; i < 10; i++) ; #pragma omp task depend(inout: this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } ; #pragma omp task depend(inout: this[0]) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } ; #pragma omp parallel private (this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } { #pragma omp single copyprivate (this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } ; } } template <int N> struct T { #pragma omp declare simd linear(this) // { dg-error "is not a function argument" } static void foo (); void bar (); }; template <int N> void T<N>::bar () { #pragma omp parallel firstprivate (this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } ; #pragma omp parallel for lastprivate (this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } for (int i = 0; i < 10; i++) ; #pragma omp parallel shared (this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } ; #pragma omp for linear (this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } for (int i = 0; i < 10; i++) ; #pragma omp task depend(inout: this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } ; #pragma omp task depend(inout: this[0]) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } ; #pragma omp parallel private (this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } { #pragma omp single copyprivate (this) // { dg-error ".this. allowed in OpenMP only in .declare simd. clauses" } ; } } template struct T<0>;