https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97958
--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-8 branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:eef73af5f1b5b3f9db8439f8ef48875c6eda5f0f commit r8-10864-geef73af5f1b5b3f9db8439f8ef48875c6eda5f0f Author: Jakub Jelinek <ja...@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 <ja...@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. (cherry picked from commit 1cd47144fd250f37206c8e2a0cc7d51c25ad368c)