summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/goacc/reference.C
blob: 07e6bd42239076b580dc7209f9ba14e45262edb6 (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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
void
test1 (int &ref)
{
#pragma acc kernels copy (ref)
  {
    ref = 10;
  }
}

void
test2 (int &ref)
{
  int b;
#pragma acc kernels copyout (b)
  {
    b = ref + 10;
  }

#pragma acc parallel copyout (b)
  {
    b = ref + 10;
  }

  ref = b;
}

int
main()
{
  int a = 0;
  int &ref_a = a;

  #pragma acc parallel copy (a, ref_a)
  {
    ref_a = 5;
  }

  return a;
}