diff options
| author | Krzysztof Parzyszek <Krzysztof.Parzyszek@amd.com> | 2026-02-04 07:20:20 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-04 07:20:20 -0600 |
| commit | 7ccdc06780b05bd8f31c20a9734fca2fbf275d7f (patch) | |
| tree | 40d6b89492e92ba188075ed1acb38d3a3dc77efe /libc/src/wchar/wmempcpy.cpp | |
| parent | 890cdbe65358eb137788ea5d3a8007ec238be26b (diff) | |
| download | llvm-main.zip llvm-main.tar.gz llvm-main.tar.bz2 | |
There is code in resolve-directives.cpp that tries to apply DSA flags to
symbols encountered inside constructs. This code was written with the
assumption that all such symbols will be declared outside of the
construct.
When a symbol declared in a BLOCK construct nested in a construct was
found, the code would attempt to either privatize or share it in the
enclosing construct (where the symbol didn't exist) leading to trouble.
BLOCK constructs (and thus the possibility of having local variables)
was introduced in F2008.
The first OpenMP spec that considered F2008 was 5.0, where the behavior
of the BLOCK construct was explicitly left unspecified. From OpenMP 5.1
onwards, all local non-static variables are private in the construct
enclosing the declaration. This PR extends this behavior retroactively
to all prior OpenMP versions.
Fixes https://github.com/llvm/llvm-project/issues/178613
Diffstat (limited to 'libc/src/wchar/wmempcpy.cpp')
0 files changed, 0 insertions, 0 deletions
