diff options
author | Tom Eccles <tom.eccles@arm.com> | 2025-06-18 14:02:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-18 14:02:11 +0100 |
commit | a83d3362f686725bac76bfb9562663908de25f15 (patch) | |
tree | a65e8fed7b706a1bed57450894583a22f2354114 /clang/lib/AST/ByteCode/InterpBuiltin.cpp | |
parent | 4b2ab1494bc07493087252dff4e5e19808703048 (diff) | |
download | llvm-a83d3362f686725bac76bfb9562663908de25f15.zip llvm-a83d3362f686725bac76bfb9562663908de25f15.tar.gz llvm-a83d3362f686725bac76bfb9562663908de25f15.tar.bz2 |
[flang][OpenMP] Don't allow DO CONCURRENT inside of a loop nest (#144506)
I don't think DO CONCURRENT fits the definition of a Canonical Loop Nest
(OpenMP 6.0 section 6.4.1).
It is however explicitly allowed for the LOOP construct (6.0 section
13.8).
There's some obscure language in OpenMP 6.0 for the LOOP construct:
> If the collapsed loop is a DO CONCURRENT loop, neither the
> data-sharing attribute clauses nor the collapse clause may be
specified.
From the surrounding context, I think "collapsed loop" just means the
loop that the LOOP construct applies to. So I will interpret this to
mean that DO CONCURRENT can only be used with the LOOP construct if it
does not contain the COLLAPSE clause.
This also fixes a bug where the associated clause was never cleared
after it was set.
Fixes #144178
Diffstat (limited to 'clang/lib/AST/ByteCode/InterpBuiltin.cpp')
0 files changed, 0 insertions, 0 deletions