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