aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/gomp/map-5.c
blob: 1d9d9252864cf8d37c6f2ffb7539df7354c902cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* { 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" } } */