! Test the host_data construct with optional arguments. ! Based on host_data-1.f90. ! { dg-do run } ! { dg-additional-options "-cpp" } program test implicit none integer, target :: i integer, pointer :: ip, iph ! Assign the same targets ip => i iph => i call foo(iph) call foo(iph, ip) contains subroutine foo(iph, ip) integer, pointer :: iph integer, pointer, optional :: ip !$acc data copyin(i) !$acc host_data use_device(ip) ! Test how the pointers compare inside a host_data construct if (present(ip)) then #if ACC_MEM_SHARED if (.not. associated(ip, iph)) STOP 1 #else if (associated(ip, iph)) STOP 2 #endif end if !$acc end host_data !$acc end data end subroutine foo end program test