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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |burnus at gcc dot gnu.org

--- Comment #19 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The messages show the program is doing something clearly invalid.  The mapping
can be done solely if a particular region is not mapped at all or is mapped as
whole (having some larger region mapped is fine too).
What is not fine is having just part of a region previously mapped or having it
mapped in multiple separate mappings.
[0x7fffa34613f0..0x7fffa3461420) object when [0x7fffa34613d0..0x7fffa3461400)
says that you have some region mapped at the part of the region (starting
before the new one's start, but ending before the new one's end).  That is not
valid in OpenMP (with the exception that all the mappings are done on the same
construct with the same base and constant offsets visible to the compiler in
newer OpenMP versions (not hidden through different base pointers etc.)).
The above message feels like you are trying to do:
char a[1024];
void
foo ()
{
#pragma omp enter data map(to:a[0:512])
#pragma omp enter data map(to:a[256:512])
}
or something similar.

Reply via email to