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