1! Test valid usage of the OpenACC 'declare' directive. 2 3! { dg-additional-options "-fdump-tree-original" } 4 5module mod_a 6 implicit none 7 integer :: a 8 !$acc declare create (a) 9end module 10 11module mod_b 12 implicit none 13 integer :: b 14 !$acc declare copyin (b) 15end module 16 17module mod_d 18 implicit none 19 integer :: d 20 !$acc declare device_resident (d) 21end module 22 23module mod_e 24 implicit none 25 integer :: e 26 !$acc declare link (e) 27end module 28 29subroutine sub1 30 use mod_a 31 use mod_b 32 use mod_d 33 use mod_e 34end subroutine sub1 35 36program test 37 use mod_a 38 use mod_b 39 use mod_d 40 use mod_e 41 42 ! { dg-final { scan-tree-dump {(?n)#pragma acc data map\(force_alloc:d\) map\(force_to:b\) map\(force_alloc:a\)$} original } } 43end program test 44 45! { dg-final { scan-tree-dump-times {#pragma acc data} 1 original } } 46