| /* { dg-do compile } */ |
| /* { dg-additional-options "-fdump-tree-gimple" } */ |
| |
| void foo (void) |
| { |
| /* Basic test to ensure to,from,tofrom is ordered before alloc,release,delete clauses. */ |
| int a, b, c; |
| #pragma omp target enter data map(alloc:a) map(to:b) map(alloc:c) |
| #pragma omp target exit data map(from:a) map(release:b) map(from:c) |
| |
| #pragma omp target map(alloc:a) map(tofrom:b) map(alloc:c) |
| a = b = c = 1; |
| |
| #pragma omp target enter data map(to:a) map(alloc:b) map(to:c) |
| #pragma omp target exit data map(from:a) map(delete:b) map(from:c) |
| } |
| |
| /* { dg-final { scan-tree-dump "pragma omp target enter data map\\(to:.* map\\(alloc:.* map\\(alloc:.*" "gimple" } } */ |
| /* { dg-final { scan-tree-dump "pragma omp target exit data map\\(from:.* map\\(from:.* map\\(release:.*" "gimple" } } */ |
| |
| /* { dg-final { scan-tree-dump "pragma omp target num_teams.* map\\(tofrom:.* map\\(alloc:.* map\\(alloc:.*" "gimple" } } */ |
| |
| /* { dg-final { scan-tree-dump "pragma omp target enter data map\\(to:.* map\\(to:.* map\\(alloc:.*" "gimple" } } */ |
| /* { dg-final { scan-tree-dump "pragma omp target exit data map\\(from:.* map\\(from:.* map\\(delete:.*" "gimple" } } */ |