diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-04-03 23:03:54 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-04-03 23:03:54 +0200 |
commit | 79addd1f3581896333c5437c10ae7a5202acc2ae (patch) | |
tree | 51e7c729870e7c06702c9a2e8c4544dad0371716 /gcc/c-parser.c | |
parent | 5da250fca2d707547044284a84e94beb0c74bb5a (diff) | |
download | gcc-79addd1f3581896333c5437c10ae7a5202acc2ae.zip gcc-79addd1f3581896333c5437c10ae7a5202acc2ae.tar.gz gcc-79addd1f3581896333c5437c10ae7a5202acc2ae.tar.bz2 |
re PR c/35738 (ICE with #pragma omp atomic and conversion from pointer to int)
PR c/35738
* c-parser.c (c_parser_omp_atomic): Call
default_function_array_conversion on the RHS.
* gcc.dg/gomp/pr35738.c: New test.
From-SVN: r133876
Diffstat (limited to 'gcc/c-parser.c')
-rw-r--r-- | gcc/c-parser.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/c-parser.c b/gcc/c-parser.c index d638a0b..09b6359 100644 --- a/gcc/c-parser.c +++ b/gcc/c-parser.c @@ -7381,6 +7381,7 @@ c_parser_omp_atomic (c_parser *parser) tree lhs, rhs; tree stmt; enum tree_code code; + struct c_expr rhs_expr; c_parser_skip_to_pragma_eol (parser); @@ -7443,7 +7444,9 @@ c_parser_omp_atomic (c_parser *parser) } c_parser_consume_token (parser); - rhs = c_parser_expression (parser).value; + rhs_expr = c_parser_expression (parser); + rhs_expr = default_function_array_conversion (rhs_expr); + rhs = rhs_expr.value; break; } stmt = c_finish_omp_atomic (code, lhs, rhs); |