! Test valid usage of the OpenACC 'declare' directive. ! { dg-additional-options "-fdump-tree-original" } module mod_a implicit none integer :: a !$acc declare create (a) end module module mod_b implicit none integer :: b !$acc declare copyin (b) end module module mod_d implicit none integer :: d !$acc declare device_resident (d) end module module mod_e implicit none integer :: e !$acc declare link (e) end module subroutine sub1 use mod_a use mod_b use mod_d use mod_e end subroutine sub1 program test use mod_a use mod_b use mod_d use mod_e ! { dg-final { scan-tree-dump {(?n)#pragma acc data map\(force_alloc:d\) map\(force_to:b\) map\(force_alloc:a\)$} original } } end program test ! { dg-final { scan-tree-dump-times {#pragma acc data} 1 original } }