https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96080

            Bug ID: 96080
           Summary: [OpenACC] 'acc_is_present' for Fortran 'pointer'
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: openacc
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tschwinge at gcc dot gnu.org
                CC: burnus at gcc dot gnu.org
  Target Milestone: ---

Do we have to clarify what 'acc_is_present' on a pointer means: whether the
data it points to is present, or whether the pointer object itself is present
-- or invalid?

    program main
      use openacc
      implicit none
      integer, dimension (:), allocatable, target :: a
      integer, dimension (:), pointer :: p

      allocate (a(10))
      !$acc enter data create(a)
      if (.not. acc_is_present (a)) stop 1

      p => a
      ! At this point, the data it points to is present, but the 'p' object
itself isn't.
      if (acc_is_present (p)) stop 2

      !$acc enter data create(p)
      ! At this point, both the data it points to, and the 'p' object are
present.
      if (.not. acc_is_present (p)) stop 3 !TODO This fails -- unexpectedly?

    end program main

Reply via email to