[Bug fortran/92568] New: OpenMP 5 - implicit mapping of scalar with TARGET/ALLOCATABLE/POINTER attribute: shall be 'tofrom' mapped

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Nov 18 17:53:00 GMT 2019


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

            Bug ID: 92568
           Summary: OpenMP 5 - implicit mapping of scalar with
                    TARGET/ALLOCATABLE/POINTER attribute: shall be
                    'tofrom' mapped
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: openmp
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org
  Target Milestone: ---

The following program correctly maps 'var' as firstprivate, but wrongly maps
'err' also as firstprivate - it should be  'tofrom' because of the TARGET
attribute. (Likewise with allocatable or pointer attribute.)

Cf. OpenMP 5, 2.19.7, last two bullet points.

In OpenMP 4.5 (2.19.7), all scalars are firstprivate - independ of their
attributes, unless a defaultmap clause required something else. (Hence, the
current implementation is fine for OpenMP 4.5.)

Side note: the defaultmap clause, new in OpenMP 4.5, is also not yet supported
in gfortran.


implicit none (type, external)
integer, target :: err
integer :: var
err = 42
var = 53
!$OMP target
! implied mapping tofrom for 'err' (because of target)
! implied mapping firstprivate for 'var'
err = 0
if (var /= 53) err = 1
var = 10
!$OMP end target
if (err /= 0 .or. var /= 53) error stop 1
end


More information about the Gcc-bugs mailing list