diff options
author | Jakub Jelinek <jakub@redhat.com> | 2020-11-24 09:04:28 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2020-11-24 09:04:28 +0100 |
commit | 2aaf44a90283156ec0e70ad4d9030f3ba5054c6f (patch) | |
tree | ca36956c3b723576c2227b668f2520cdf406acfc /gcc/omp-expand.c | |
parent | 4866b2f5db117f9e89f82c44ffed57178c09cc49 (diff) | |
download | gcc-2aaf44a90283156ec0e70ad4d9030f3ba5054c6f.zip gcc-2aaf44a90283156ec0e70ad4d9030f3ba5054c6f.tar.gz gcc-2aaf44a90283156ec0e70ad4d9030f3ba5054c6f.tar.bz2 |
openmp: Fix C ICE on OpenMP atomics
c_parser_binary_expression was using build2 to create a temporary holder
for binary expression that c_parser_atomic and c_finish_omp_atomic can then
handle. The latter performs then all the needed checking.
Unfortunately, build2 performs some checking too, e.g. PLUS_EXPR vs.
POINTER_PLUS_EXPR or matching types of the arguments, nothing we can guarantee
at the parsing time. So we need something like C++ build_min_nt*. This
patch implements that inline.
2020-11-24 Jakub Jelinek <jakub@redhat.com>
PR c/97958
* c-parser.c (c_parser_binary_expression): For omp atomic binary
expressions, use make_node instead of build2 to avoid checking build2
performs.
* c-c++-common/gomp/pr97958.c: New test.
Diffstat (limited to 'gcc/omp-expand.c')
0 files changed, 0 insertions, 0 deletions