]> git.ipfire.org Git - thirdparty/gcc.git/commit
openmp: Mark OpenMP atomic write expression as read [PR119000]
authorJakub Jelinek <jakub@redhat.com>
Tue, 25 Feb 2025 08:33:21 +0000 (09:33 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 25 Feb 2025 08:33:21 +0000 (09:33 +0100)
commitcdffc76393488a73671b70481cf8a4b7c289029d
tree5022055dec0c146568ad9ae6a7f15887628d177b
parent86a4af2793393e47af6b78cb7094c97914890091
openmp: Mark OpenMP atomic write expression as read [PR119000]

The following testcase was emitting false positive warning that
the rhs of #pragma omp atomic write was stored but not read,
when the atomic actually does read it.  The following patch
fixes that by calling default_function_array_read_conversion
on it, so that it is marked as read as well as converted from
lvalue to rvalue.
Furthermore, the code had
if (code == NOP_EXPR) ... else ... if (code == NOP_EXPR) ...
with none of ... parts changing code, so I've merged the two ifs.

2025-02-25  Jakub Jelinek  <jakub@redhat.com>

PR c/119000
* c-parser.cc (c_parser_omp_atomic): For omp write call
default_function_array_read_conversion on the rhs expression.
Merge the two adjacent if (code == NOP_EXPR) blocks.

* c-c++-common/gomp/pr119000.c: New test.
gcc/c/c-parser.cc
gcc/testsuite/c-c++-common/gomp/pr119000.c [new file with mode: 0644]