diff options
author | Jakub Jelinek <jakub@redhat.com> | 2015-02-11 14:40:31 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2015-02-11 14:40:31 +0100 |
commit | fa01ffccc77fd08b566642487b05eea568a28e60 (patch) | |
tree | e1632c6ff1de20355a3f4f7074b072de291d3d44 /gcc/c/c-parser.c | |
parent | c43ade800481f77c8fcd70c6d795b0adee045810 (diff) | |
download | gcc-fa01ffccc77fd08b566642487b05eea568a28e60.zip gcc-fa01ffccc77fd08b566642487b05eea568a28e60.tar.gz gcc-fa01ffccc77fd08b566642487b05eea568a28e60.tar.bz2 |
re PR middle-end/64824 (ICE in gimple verification)
PR c/64824
* c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec
check in the POP macro.
* testsuite/libgomp.c/atomic-18.c: New test.
* testsuite/libgomp.c++/atomic-16.C: New test.
From-SVN: r220617
Diffstat (limited to 'gcc/c/c-parser.c')
-rw-r--r-- | gcc/c/c-parser.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index 982ba6a..ceb9e1a 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -6233,8 +6233,8 @@ c_parser_binary_expression (c_parser *parser, struct c_expr *after, if (__builtin_expect (omp_atomic_lhs != NULL_TREE, 0) && sp == 1 \ && c_parser_peek_token (parser)->type == CPP_SEMICOLON \ && ((1 << stack[sp].prec) \ - & (1 << (PREC_BITOR | PREC_BITXOR | PREC_BITAND | PREC_SHIFT \ - | PREC_ADD | PREC_MULT))) \ + & ((1 << PREC_BITOR) | (1 << PREC_BITXOR) | (1 << PREC_BITAND) \ + | (1 << PREC_SHIFT) | (1 << PREC_ADD) | (1 << PREC_MULT))) \ && stack[sp].op != TRUNC_MOD_EXPR \ && stack[0].expr.value != error_mark_node \ && stack[1].expr.value != error_mark_node \ |