1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /* { 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" } */
|