openmp: Reject invalid forms of C++ #pragma omp atomic compare [PR106448]
authorJakub Jelinek <jakub@redhat.com>
Fri, 29 Jul 2022 07:59:19 +0000 (09:59 +0200)
committerJakub Jelinek <jakub@redhat.com>
Fri, 29 Jul 2022 07:59:19 +0000 (09:59 +0200)
commit2dcceedb3c121f2498ae58d8414e7b8454b7bf55
tree4b430a47464cf74aa6b1c321a96626cff344abaf
parent97d32048c04e9787fccadc4bae1c042754503e34
openmp: Reject invalid forms of C++ #pragma omp atomic compare [PR106448]

The allowed syntaxes of atomic compare don't allow ()s around the condition
of ?:, but we were accepting it in one case for C++.

Fixed thusly.

2022-07-29  Jakub Jelinek  <jakub@redhat.com>

PR c++/106448
* parser.cc (cp_parser_omp_atomic): For simple cast followed by
CPP_QUERY token, don't try cp_parser_binary_operation if compare
is true.

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