aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-parser.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-04-03 23:03:54 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2008-04-03 23:03:54 +0200
commit79addd1f3581896333c5437c10ae7a5202acc2ae (patch)
tree51e7c729870e7c06702c9a2e8c4544dad0371716 /gcc/c-parser.c
parent5da250fca2d707547044284a84e94beb0c74bb5a (diff)
downloadgcc-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.c5
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);