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

            Bug ID: 93826
           Summary: [OpenMP][OpenACC] Collapsed loop – code silently
                    ignored
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: openacc, openmp
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org
  Target Milestone: ---

Found when looking at PR 93552.

The code gfc_trans_omp_do for collapes (and for OpenACC's 'tile') creates a
single #pragma followed by a bunch of "for (....)" statements, matching the
specified number of collapse/tile.

It then translates the body of the inner loop in one go.

RESULT: Code outside the innermost loop is silently ignored.

EXPECTED: I have still to digest the OpenMP/OpenACC spec, but I expect either
an error (if invalid) or that the code does not get ignored (if valid).

program p
   integer :: i, j, k
   real :: x
   !$acc parallel loop collapse(3)
   !$omp parallel do collapse(3)
   do i = 1, 8
      do j = 1, 8
        do k = 1, 8
        end do
        x = 5  ! <<< not translated but also not an error message
      end do
   end do
end

Reply via email to