! This test checks if the runtime can properly handle implicit
! firstprivate varaibles inside subroutines in modules.
! { dg-do run }
module test_mod
  contains
    subroutine test(x)
      IMPLICIT NONE
      INTEGER      :: x, y, j
      x = 5
      !$ACC PARALLEL LOOP copyout (y)
      DO j=1,10
         y=x
      ENDDO
      !$ACC END PARALLEL LOOP
      y = -1;
      !$ACC PARALLEL LOOP firstprivate (y) copyout (x)
      DO j=1,10
         x=y
      ENDDO
      !$ACC END PARALLEL LOOP
    end subroutine test
end module test_mod
program t
  use test_mod
  INTEGER      :: x_min
  x_min = 8
  CALL test(x_min)
  if (x_min .ne. -1) STOP 1
end program t