From e162a134863bfd95d356fed2edf600854a5712c8 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 22 Apr 2014 18:22:22 +0200 Subject: re PR c/59073 (ICE with missing increment in OpenMP for-loop) PR c/59073 c/ * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for fails, don't set OM_PARALLEL_COMBINED and return NULL. cp/ * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for fails, don't set OM_PARALLEL_COMBINED and return NULL. testsuite/ * c-c++-common/gomp/pr59073.c: New test. From-SVN: r209646 --- gcc/c/ChangeLog | 6 ++++++ gcc/c/c-parser.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'gcc/c') diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index bacfbe3..2d182f3 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,9 @@ +2014-04-22 Jakub Jelinek + + PR c/59073 + * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for + fails, don't set OM_PARALLEL_COMBINED and return NULL. + 2014-04-12 Igor Zamyatin PR middle-end/60469 diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index 5653e49..0deab84 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -12208,10 +12208,12 @@ c_parser_omp_parallel (location_t loc, c_parser *parser, if (!flag_openmp) /* flag_openmp_simd */ return c_parser_omp_for (loc, parser, p_name, mask, cclauses); block = c_begin_omp_parallel (); - c_parser_omp_for (loc, parser, p_name, mask, cclauses); + tree ret = c_parser_omp_for (loc, parser, p_name, mask, cclauses); stmt = c_finish_omp_parallel (loc, cclauses[C_OMP_CLAUSE_SPLIT_PARALLEL], block); + if (ret == NULL_TREE) + return ret; OMP_PARALLEL_COMBINED (stmt) = 1; return stmt; } -- cgit v1.1