[Bug c/97958] ICE in build2, at tree.c:4868
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Nov 24 08:07:35 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97958
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:2aaf44a90283156ec0e70ad4d9030f3ba5054c6f
commit r11-5272-g2aaf44a90283156ec0e70ad4d9030f3ba5054c6f
Author: Jakub Jelinek <jakub@redhat.com>
Date: Tue Nov 24 09:04:28 2020 +0100
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.
More information about the Gcc-bugs
mailing list