| // { dg-do compile { target c++17 } } |
| |
| void |
| foo () |
| { |
| if constexpr (false) |
| { |
| #pragma omp error // { dg-bogus "'pragma omp error' encountered" } |
| } |
| else |
| { |
| #pragma omp error at(compilation) severity(warning) message("foo") // { dg-warning "'pragma omp error' encountered: foo" } |
| } |
| if constexpr (true) |
| { |
| #pragma omp error message("bar") // { dg-error "'pragma omp error' encountered: bar" } |
| } |
| else |
| { |
| #pragma omp error message("baz") // { dg-bogus "'pragma omp error' encountered" } |
| } |
| } |
| |
| template <typename T> |
| bool |
| bar (T x) |
| { |
| #pragma omp error at(execution) message (x) |
| return false; |
| } |
| |
| bool a = bar ("foo"); |
| |
| template <typename T> |
| bool |
| baz (T x) |
| { |
| #pragma omp error at(execution) message (x) // { dg-error "could not convert" } |
| return false; |
| } |
| |
| bool b = baz (L"foo"); |