1! Test valid usage and processing of the finalize clause.
2
3! { dg-additional-options "-fdump-tree-original -fdump-tree-gimple" }
4
5      SUBROUTINE f
6      IMPLICIT NONE
7      INTEGER :: del_r
8      REAL, DIMENSION (3) :: del_f
9      DOUBLE PRECISION, DIMENSION (8) :: cpo_r
10      LOGICAL :: cpo_f
11
12!$ACC EXIT DATA DELETE (del_r)
13! { dg-final { scan-tree-dump-times "(?n)#pragma acc exit data map\\(release:del_r\\);$" 1 "original" } }
14! { dg-final { scan-tree-dump-times "(?n)#pragma omp target oacc_enter_exit_data map\\(release:del_r \\\[len: \[0-9\]+\\\]\\)$" 1 "gimple" } }
15
16!$ACC EXIT DATA FINALIZE DELETE (del_f)
17! { dg-final { scan-tree-dump-times "(?n)#pragma acc exit data map\\(release:del_f\\) finalize;$" 1 "original" } }
18! { dg-final { scan-tree-dump-times "(?n)#pragma omp target oacc_enter_exit_data map\\(delete:del_f \\\[len: \[0-9\]+\\\]\\) finalize$" 1 "gimple" } }
19
20!$ACC EXIT DATA COPYOUT (cpo_r)
21! { dg-final { scan-tree-dump-times "(?n)#pragma acc exit data map\\(from:cpo_r\\);$" 1 "original" } }
22! { dg-final { scan-tree-dump-times "(?n)#pragma omp target oacc_enter_exit_data map\\(from:cpo_r \\\[len: \[0-9\]+\\\]\\)$" 1 "gimple" } }
23
24!$ACC EXIT DATA COPYOUT (cpo_f) FINALIZE
25! { dg-final { scan-tree-dump-times "(?n)#pragma acc exit data map\\(from:cpo_f\\) finalize;$" 1 "original" } }
26! { dg-final { scan-tree-dump-times "(?n)#pragma omp target oacc_enter_exit_data map\\(force_from:cpo_f \\\[len: \[0-9\]+\\\]\\) finalize$" 1 "gimple" } }
27      END SUBROUTINE f
28