! { dg-additional-options "-O3" } ! ! With -O3 the static local variable A.10 generated for ! the array constructor [-2, -4, ..., -20] is optimized ! away - which has to be handled in the offload_vars table. ! program main implicit none (type, external) integer :: j integer, allocatable :: A(:) A = [(3*j, j=1, 10)] call bar (A) deallocate (A) contains subroutine bar (array) integer :: i integer :: array(:) !$omp target map(from:array) !$acc parallel copyout(array) array = [(-2*i, i = 1, size(array))] !$omp do private(array) !$acc loop gang private(array) do i = 1, 10 array(i) = 9*i end do if (any (array /= [(-2*i, i = 1, 10)])) error stop 2 !$omp end target !$acc end parallel end subroutine bar end