blob: f12ff7b2132760ffb65d3a3d6d88e50abc9feba1 [file] [log] [blame]
/* { dg-do compile } */
void f()
{
#if !defined(__cplusplus) || __cplusplus >= 201103L
constexpr int M = 1024; // C20 + C++11
#endif
int N, A[1];
N = 1024;
#pragma omp target dyn_groupprivate(0)
;
#pragma omp target dyn_groupprivate(0) dyn_groupprivate(0) // { dg-error "too many 'dyn_groupprivate' clauses" }
;
#pragma omp target dyn_groupprivate(1,) // { dg-error "expected '\\)' before ',' token" }
;
#pragma omp target dyn_groupprivate(-123) // { dg-warning "'dyn_groupprivate' value must be non-negative \\\[-Wopenmp\\\]" }
;
#if !defined(__cplusplus) || __cplusplus >= 201103L
#pragma omp target dyn_groupprivate (0 * M - 1) // { dg-warning "'dyn_groupprivate' value must be non-negative \\\[-Wopenmp\\\]" "" { target { ! c++98_only } } }
#endif
;
#pragma omp target dyn_groupprivate (- 4) // { dg-warning "'dyn_groupprivate' value must be non-negative \\\[-Wopenmp\\\]" }
;
#pragma omp target dyn_groupprivate ( fallback ( other ) : N) // { dg-error "expected 'abort', 'default_mem', or 'null' as fallback mode before 'other'" }
// { dg-error "expected an OpenMP clause before ':' token" "" { target c++ } .-1 }
;
#pragma omp target dyn_groupprivate ( A )
// { dg-error "expected integer expression" "" { target c } .-1 }
// { dg-error "'dyn_groupprivate' expression must be integral" "" { target c++ } .-2 }
;
#pragma omp target dyn_groupprivate ( 1024. )
// { dg-error "expected integer expression" "" { target c } .-1 }
// { dg-error "'dyn_groupprivate' expression must be integral" "" { target c++ } .-2 }
;
#pragma omp target dyn_groupprivate ( foo ( 4 ) : 10 ) // { dg-error "expected 'fallback' modifier before 'foo'" }
;
#pragma omp target dyn_groupprivate ( foo2 ( ) : 10 ) // { dg-error "expected 'fallback' modifier before 'foo2'" }
;
#pragma omp target dyn_groupprivate ( fallback ( ) : 10 ) // { dg-error "expected 'abort', 'default_mem', or 'null' as fallback mode before '\\)'" }
// { dg-error "expected an OpenMP clause before ':' token" "" { target c++ } .-1 }
;
#pragma omp target dyn_groupprivate ( bar : 10 ) // { dg-error "expected 'fallback' modifier before 'bar'" }
;
#pragma omp target dyn_groupprivate ( fallback : 10 ) // { dg-error "expected '\\(' before ':' token" }
// { dg-error "expected an OpenMP clause before ':' token" "" { target c++ } .-1 }
;
#pragma omp target dyn_groupprivate ( fallback ( null,) : 10 ) // { dg-error "expected '\\)' before ',' token" }
// { dg-error "expected an OpenMP clause before '\\)' token" "" { target c++ } .-1 }
;
}
// { dg-message "sorry, unimplemented: 'dyn_groupprivate' clause" "" { target *-*-* } 11 }
// { dg-message "sorry, unimplemented: 'dyn_groupprivate' clause" "" { target *-*-* } 14 }
// { dg-message "sorry, unimplemented: 'dyn_groupprivate' clause" "" { target *-*-* } 17 }
// { dg-message "sorry, unimplemented: 'dyn_groupprivate' clause" "" { target *-*-* } 20 }
// { dg-message "sorry, unimplemented: 'dyn_groupprivate' clause" "" { target { ! c++98_only } } 24 }
// { dg-message "sorry, unimplemented: 'dyn_groupprivate' clause" "" { target *-*-* } 28 }