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

            Bug ID: 108624
           Summary: [OpenMP] Map(ptr, ptr[2:N-2]) will cause a segfault,
                    'map(ptr, ptr[0:N])'
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Keywords: openmp, wrong-code
          Severity: normal
          Priority: P3
         Component: libgomp
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org
  Target Milestone: ---

Created attachment 54382
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54382&action=edit
Testcase doing map(ptr1[1:N-1]) - segfaulting at runtime when doing offload

This came up during the OpenMP F2F and the segfaults at runtime both with GCC
and Clang,

It is based on
https://github.com/OpenMP/Examples/blob/main/devices/sources/target_ptr_map.1.c
- And we believe the modified variant should work (but I have not fully checked
whether it is indeed supposed to work).

The problem seems to be that
  ptr  maps the pointer
  ptr[n:m] maps the array

Without 'ptr', it is attached and firstprivatized - that just works fine.

With 'ptr' being present in addition, with
  ptr[0:m]  (i.e. starting at the lowest index)
the pointer attach of the data to the 'ptr' workes.

However, if one starts with
  ptr[2:N-2]  (i.e. with offset)
the pointer attachment does not work - leading to a segfault at runtime.

Naming remark:
  For map(ptr[2:N-2]),
    ptr[2] is in the mapped range
    while p[0] is in the extended range.

Reply via email to