https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110639
Bug ID: 110639
Summary: [OpenMP][5.1] Predefined firstprivate for pointers -
attachment missing
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Keywords: openmp, wrong-code
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
Target Milestone: ---
OpenMP 5.1 changed (quoting GCC impl. status):
Pointer predetermined firstprivate getting initialized to address of matching
mapped list item per 5.1, Sect. 2.21.7.2
However, looking at the examples in the OpenMP spec issue #1796 (TRAC864) this
does not handle partially mapped data correctly:
int a[100];
int *p = &a[0];
#pragma omp target teams distribute map(a[start:n])
for (int i = start; i < start+n; i++) {
p[i] = f(p[i], i);
}
Here, 'p' has an points to 'a' (actually, to the base address of 'a') but this
address is not mapped. However, it still points to the extended address range
of mapped data.