blob: e7f550ae70143ebf978ff1bb9e16035f311770ca [file] [log] [blame]
/* { dg-shouldfail "error directive" } */
#ifdef __cplusplus
extern "C"
#endif
void abort ();
int
foo (int i, int x)
{
if (x)
#pragma omp error severity(warning) /* { dg-warning "'pragma omp error' encountered" } */
i++;
if (!x)
;
else
#pragma omp error severity(warning) /* { dg-warning "'pragma omp error' encountered" } */
i += 2;
switch (0)
#pragma omp error severity(warning) /* { dg-warning "'pragma omp error' encountered" } */
{
default:
break;
}
while (0)
#pragma omp error message("42 - 1") severity (warning) /* { dg-warning "'pragma omp error' encountered: 42 - 1" } */
i += 4;
lab:
#pragma omp error severity(warning) message("bar") at(compilation) /* { dg-warning "'pragma omp error' encountered: bar" } */
i += 8;
return i;
}
int
main ()
{
/* Initialize offloading early, so that any output this may produce doesn't
disturb the 'dg-output' scanning below. */
#pragma omp target
;
if (foo (5, 0) != 13 || foo (6, 1) != 17)
abort ();
#pragma omp error at (execution) severity (warning)
const char *msg = "my message" + 2;
#pragma omp error at (execution) severity (warning) message (msg + 1)
#pragma omp target
{
#pragma omp error at (execution) severity (warning) message ("hello from a distance")
}
#pragma omp error at (execution) severity (fatal) message (msg - 2)
#pragma omp error at (execution) severity (warning) message ("foobar")
return 0;
}
/* { dg-output "libgomp: error directive encountered(\n|\r|\r\n)(\n|\r|\r\n)" } */
/* { dg-output "libgomp: error directive encountered: message(\n|\r|\r\n)(\n|\r|\r\n)" } */
/* { dg-output "libgomp: error directive encountered: hello from a distance(\n|\r|\r\n)(\n|\r|\r\n)" } */
/* { dg-output "libgomp: fatal error: error directive encountered: my message" } */