diff options
author | jeanPerier <jperier@nvidia.com> | 2025-02-05 17:20:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-05 17:20:35 +0100 |
commit | 925d347c5a43fd4864c7cb142e4069a1d494cd11 (patch) | |
tree | 9c51a72a8d94205c581e8fa517f29e8b39e37150 /clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp | |
parent | c94d930a212248d7102822ca7d0e37e72fd38cb3 (diff) | |
download | llvm-925d347c5a43fd4864c7cb142e4069a1d494cd11.zip llvm-925d347c5a43fd4864c7cb142e4069a1d494cd11.tar.gz llvm-925d347c5a43fd4864c7cb142e4069a1d494cd11.tar.bz2 |
[flang] fix IsSimplyContiguous with expressions (#125708)
IsSymplyContiguous was visiting expressions and returning false on
expressions like `x(::2) + y`, which triggered an assert in lowering
when preparing arguments for copy-in/out.
Update it to return false for everything that is not a variable, except
when provided a flag to treat PARAMETER bases as variables. This flags
is required for internal usages in lowering where lowering needs to now
if the read-only memory is being addressed contiguously or not.
Update call lowering to always copy parameter array section into
contiguous writable memory when passing them. The rational here is that
copy-out generated in nested calls using the dummy arguments will cause
a segfault.
Diffstat (limited to 'clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp')
0 files changed, 0 insertions, 0 deletions