(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
goacc/
finalize-1.c
       1  /* Test valid usage and processing of the finalize clause.  */
       2  
       3  /* { dg-additional-options "-fdump-tree-original -fdump-tree-gimple" } */
       4  
       5  extern int del_r;
       6  extern float del_f[3];
       7  extern char *del_f_p;
       8  extern double cpo_r[8];
       9  extern long cpo_f;
      10  extern char *cpo_f_p;
      11  
      12  void f ()
      13  {
      14  #pragma acc exit data delete (del_r)
      15  /* { dg-final { scan-tree-dump-times "(?n)#pragma acc exit data map\\(release:del_r\\);$" 1 "original" } }
      16     { dg-final { scan-tree-dump-times "(?n)#pragma omp target oacc_exit_data map\\(release:del_r \\\[len: \[0-9\]+\\\]\\)$" 1 "gimple" } } */
      17  
      18  #pragma acc exit data finalize delete (del_f)
      19  /* { dg-final { scan-tree-dump-times "(?n)#pragma acc exit data map\\(release:del_f\\) finalize;$" 1 "original" } }
      20     { dg-final { scan-tree-dump-times "(?n)#pragma omp target oacc_exit_data map\\(delete:del_f \\\[len: \[0-9\]+\\\]\\) finalize$" 1 "gimple" } } */
      21  
      22  #pragma acc exit data finalize delete (del_f_p[2:5])
      23  /* { dg-final { scan-tree-dump-times "(?n)#pragma acc exit data map\\(release:\\*\\(del_f_p \\+ 2\\) \\\[len: 5\\\]\\) map\\(firstprivate:del_f_p \\\[pointer assign, bias: 2\\\]\\) finalize;$" 1 "original" } }
      24     { dg-final { scan-tree-dump-times "(?n)#pragma omp target oacc_exit_data map\\(delete:\[^ \]+ \\\[len: 5\\\]\\) finalize$" 1 "gimple" } } */
      25  
      26  #pragma acc exit data copyout (cpo_r)
      27  /* { dg-final { scan-tree-dump-times "(?n)#pragma acc exit data map\\(from:cpo_r\\);$" 1 "original" } }
      28     { dg-final { scan-tree-dump-times "(?n)#pragma omp target oacc_exit_data map\\(from:cpo_r \\\[len: \[0-9\]+\\\]\\)$" 1 "gimple" } } */
      29  
      30  #pragma acc exit data copyout (cpo_f) finalize
      31  /* { dg-final { scan-tree-dump-times "(?n)#pragma acc exit data finalize map\\(from:cpo_f\\);$" 1 "original" } }
      32     { dg-final { scan-tree-dump-times "(?n)#pragma omp target oacc_exit_data finalize map\\(force_from:cpo_f \\\[len: \[0-9\]+\\\]\\)$" 1 "gimple" } } */
      33  
      34  #pragma acc exit data copyout (cpo_f_p[4:10]) finalize
      35  /* { dg-final { scan-tree-dump-times "(?n)#pragma acc exit data finalize map\\(from:\\*\\(cpo_f_p \\+ 4\\) \\\[len: 10\\\]\\) map\\(firstprivate:cpo_f_p \\\[pointer assign, bias: 4\\\]\\);$" 1 "original" } }
      36     { dg-final { scan-tree-dump-times "(?n)#pragma omp target oacc_exit_data finalize map\\(force_from:\[^ \]+ \\\[len: 10\\\]\\)$" 1 "gimple" } } */
      37  }