(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.oacc-c-c++-common/
deep-copy-3.c
       1  #include <assert.h>
       2  #include <stdlib.h>
       3  #include <openacc.h>
       4  
       5  int
       6  main ()
       7  {
       8    int n = 100, i;
       9    int *a = (int *) malloc (sizeof (int) * n);
      10    int *b;
      11  
      12    for (i = 0; i < n; i++)
      13      a[i] = i+1;
      14  
      15  #pragma acc enter data copyin(a[:n]) create(b)
      16  
      17    b = a;
      18    acc_attach ((void **)&b);
      19  
      20  #pragma acc parallel loop present (b[:n])
      21    for (i = 0; i < n; i++)
      22      b[i] = i+1;
      23  
      24    acc_detach ((void **)&b);
      25  
      26  #pragma acc exit data copyout(a[:n], b)
      27  
      28    for (i = 0; i < 10; i++)
      29      assert (a[i] == b[i]);
      30  
      31    free (a);
      32  
      33    return 0;
      34  }