(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.oacc-c-c++-common/
deviceptr-1.c
       1  #include <stdlib.h>
       2  
       3  int main (void)
       4  {
       5    void *a, *a_1, *a_2;
       6  
       7  #define A (void *) 0x123
       8    a = A;
       9  
      10  #pragma acc data copyout (a_1, a_2)
      11  #pragma acc kernels deviceptr (a)
      12    {
      13      a_1 = a;
      14      a_2 = &a;
      15    }
      16  
      17    if (a != A)
      18      abort ();
      19    if (a_1 != a)
      20      abort ();
      21  #if ACC_MEM_SHARED
      22    if (a_2 != &a)
      23      abort ();
      24  #else
      25    if (a_2 == &a)
      26      abort ();
      27  #endif
      28  
      29    a_1 = a_2 = 0;
      30  
      31  #pragma acc data deviceptr (a)
      32  #pragma acc parallel copyout (a_1, a_2)
      33    {
      34      a_1 = a;
      35      a_2 = &a;
      36    }
      37  
      38    if (a != A)
      39      abort ();
      40    if (a_1 != a)
      41      abort ();
      42  #if ACC_MEM_SHARED
      43    if (a_2 != &a)
      44      abort ();
      45  #else
      46    if (a_2 == &a)
      47      abort ();
      48  #endif
      49  
      50    return 0;
      51  }