| /* { dg-do compile } */ |
| /* { dg-options "-fopenmp -fdump-tree-gimple" } */ |
| |
| #pragma omp begin declare target indirect |
| void fn1 (void) { } |
| #pragma omp end declare target |
| /* { dg-final { scan-tree-dump "__attribute__\\\(\\\(omp declare target, omp declare target indirect\\\)\\\)\\\nvoid fn1" "gimple" } } */ |
| |
| #pragma omp begin declare target indirect (0) |
| void fn2 (void) { } |
| #pragma omp end declare target |
| /* { dg-final { scan-tree-dump "__attribute__\\\(\\\(omp declare target\\\)\\\)\\\nvoid fn2" "gimple" } } */ |
| |
| void fn3 (void) { } |
| #pragma omp declare target indirect to (fn3) |
| /* { dg-final { scan-tree-dump "__attribute__\\\(\\\(omp declare target indirect, omp declare target\\\)\\\)\\\nvoid fn3" "gimple" } } */ |
| |
| void fn4 (void) { } |
| #pragma omp declare target indirect (0) to (fn4) |
| /* { dg-final { scan-tree-dump "__attribute__\\\(\\\(omp declare target\\\)\\\)\\\nvoid fn4" "gimple" } } */ |
| |
| #pragma omp begin declare target indirect(1) |
| int foo(void) { return 5; } |
| #pragma omp begin declare target indirect(0) |
| int bar(void) { return 8; } |
| int baz(void) { return 11; } |
| #pragma omp declare target indirect enter(baz) |
| #pragma omp end declare target |
| #pragma omp end declare target |
| /* { dg-final { scan-tree-dump "__attribute__\\\(\\\(omp declare target, omp declare target indirect\\\)\\\)\\\nint foo" "gimple" } } */ |
| /* { dg-final { scan-tree-dump "__attribute__\\\(\\\(omp declare target\\\)\\\)\\\nint bar" "gimple" } } */ |
| /* { dg-final { scan-tree-dump "__attribute__\\\(\\\(omp declare target indirect, omp declare target\\\)\\\)\\\nint baz" "gimple" } } */ |