(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.oacc-c-c++-common/
no_create-2.c
       1  /* Test 'no_create' clause on compute construct, with data not present on the
       2     device.  */
       3  
       4  #include <stdlib.h>
       5  #include <stdio.h>
       6  
       7  #define N 128
       8  
       9  int
      10  main (int argc, char *argv[])
      11  {
      12    int var;
      13    int *arr = (int *) malloc (N * sizeof (*arr));
      14    int *devptr[2];
      15  
      16  #pragma acc parallel no_create(var, arr[0:N]) copyout(devptr)
      17    {
      18      devptr[0] = &var;
      19      devptr[1] = &arr[2];
      20    }
      21    if (devptr[0] != &var)
      22      __builtin_abort ();
      23    if (devptr[1] != &arr[2])
      24      __builtin_abort ();
      25  
      26  #pragma acc parallel no_create(var, arr[0:N]) copyout(devptr) async
      27    {
      28      devptr[0] = &arr[N - 2];
      29      devptr[1] = &var;
      30    }
      31  #pragma acc wait
      32    if (devptr[0] != &arr[N - 2])
      33      __builtin_abort ();
      34    if (devptr[1] != &var)
      35      __builtin_abort ();
      36  
      37    free (arr);
      38  
      39    return 0;
      40  }