https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97958

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Jakub Jelinek
<ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:28a164db98d7cb8fa82ac3699471830284502021

commit r9-9394-g28a164db98d7cb8fa82ac3699471830284502021
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)

Reply via email to