blob: 6858f3f359f236305b60f370d851f99a6d2f8475 [file] [log] [blame]
// { dg-do compile { target c++11 } }
#pragma omp begin declare target
#pragma omp begin declare target device_type (any)
[[omp::directive (begin declare target, device_type (host))]];
int a;
[[omp::directive (end declare target)]];
#pragma omp end declare target
#pragma omp end declare target
[[omp::directive (begin declare target device_type (nohost))]];
int b;
#pragma omp end declare target // { dg-error "'begin declare target' in attribute syntax terminated with 'end declare target' in pragma syntax" }
#pragma omp begin declare target
int c;
[[omp::directive (end declare target)]];// { dg-error "'begin declare target' in pragma syntax terminated with 'end declare target' in attribute syntax" }
#pragma omp begin declare target device_type (host)
[[omp::directive (begin declare target)]];
int d;
#pragma omp end declare target // { dg-error "'begin declare target' in attribute syntax terminated with 'end declare target' in pragma syntax" }
#pragma omp begin declare target
int e;
[[omp::directive (end declare target)]];// { dg-error "'begin declare target' in pragma syntax terminated with 'end declare target' in attribute syntax" }
#pragma omp end declare target
[[omp::directive (begin declare target device_type (any))]];
[[omp::directive (begin declare target)]];
int f;
#pragma omp end declare target // { dg-error "'begin declare target' in attribute syntax terminated with 'end declare target' in pragma syntax" }
#pragma omp begin declare target
int g;
[[omp::directive (end declare target)]];// { dg-error "'begin declare target' in pragma syntax terminated with 'end declare target' in attribute syntax" }
[[omp::directive (end declare target)]];
[[omp::directive (begin declare target)]];
#pragma omp begin declare target
int h;
#pragma omp end declare target
#pragma omp end declare target // { dg-error "'begin declare target' in attribute syntax terminated with 'end declare target' in pragma syntax" }
#pragma omp begin declare target
[[omp::directive (begin declare target)]];
int i;
[[omp::directive (end declare target)]];
[[omp::directive (end declare target)]];// { dg-error "'begin declare target' in pragma syntax terminated with 'end declare target' in attribute syntax" }