diff options
author | agozillon <Andrew.Gozillon@amd.com> | 2025-05-09 13:57:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-09 13:57:45 +0200 |
commit | b291cfcad4815568dc1eaca58185d25dceed3f1c (patch) | |
tree | b109b9df4443738cfab11187191fa8b8f0667e90 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | dd42112c82d7b12669513dca4048167664b211b2 (diff) | |
download | llvm-b291cfcad4815568dc1eaca58185d25dceed3f1c.zip llvm-b291cfcad4815568dc1eaca58185d25dceed3f1c.tar.gz llvm-b291cfcad4815568dc1eaca58185d25dceed3f1c.tar.bz2 |
[Flang][OpenMP] Generate correct present checks for implicit maps of optional allocatables (#138210)
Currently, we do not generate the appropriate checks to check if an
optional
allocatable argument is present before accessing relevant components of
it,
in particular when creating bounds, we must generate a presence check
and we
must make sure we do not generate/keep an load external to the presence
check
by utilising the raw address rather than the regular address of the info
data structure.
Similarly in cases for optional allocatables we must treat them like
non-allocatable
arguments and generate an intermediate allocation that we can have as a
location
in memory that we can access later in the lowering without causing
segfaults when
we perform "mapping" on it, even if the end result is an empty
allocatable
(basically, we shouldn't explode if someone tries to map a non-present
optional,
similar to C++ when mapping null data).
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions