diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-04-22 18:22:22 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2014-04-22 18:22:22 +0200 |
commit | e162a134863bfd95d356fed2edf600854a5712c8 (patch) | |
tree | d57b130b5eccdf6ed81c9bd564f2a652780e9454 /gcc/c | |
parent | 621ad2de2165d7064518136d476befe0ca8dd9ad (diff) | |
download | gcc-e162a134863bfd95d356fed2edf600854a5712c8.zip gcc-e162a134863bfd95d356fed2edf600854a5712c8.tar.gz gcc-e162a134863bfd95d356fed2edf600854a5712c8.tar.bz2 |
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
Diffstat (limited to 'gcc/c')
-rw-r--r-- | gcc/c/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/c/c-parser.c | 4 |
2 files changed, 9 insertions, 1 deletions
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 <jakub@redhat.com> + + 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 <igor.zamyatin@intel.com> 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; } |