(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.c/
target-28.c
       1  extern void abort (void);
       2  
       3  int g;
       4  #pragma omp declare target (g)
       5  
       6  #pragma omp declare target
       7  int
       8  foo (void)
       9  {
      10    static int s;
      11    return ++s + g;
      12  }
      13  #pragma omp end declare target
      14  
      15  int
      16  bar (void)
      17  {
      18    static int s;
      19    #pragma omp declare target to (s)
      20    return ++s;
      21  }
      22  #pragma omp declare target (bar)
      23  
      24  int
      25  main ()
      26  {
      27    int r;
      28    #pragma omp target map(from:r)
      29    {
      30      r = (foo () == 1) + (bar () == 1);
      31      r += (foo () == 2) + (bar () == 2);
      32    }
      33    if (r != 4)
      34      abort ();
      35    return 0;
      36  }