aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/openmp.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2010-09-08 18:46:13 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2010-09-08 18:46:13 +0200
commit9c2934f4d9e90c10d9209b47d0da2221718083d9 (patch)
tree9f539fa3028978f2cba42b6226bfe201324aebf4 /gcc/fortran/openmp.c
parent42a3beeb9a6874fab5a6a767c6136de5614c5f37 (diff)
downloadgcc-9c2934f4d9e90c10d9209b47d0da2221718083d9.zip
gcc-9c2934f4d9e90c10d9209b47d0da2221718083d9.tar.gz
gcc-9c2934f4d9e90c10d9209b47d0da2221718083d9.tar.bz2
re PR fortran/45595 (segfault on omp collapse)
PR fortran/45595 * openmp.c (resolve_omp_do): Report not enough do loops for collapse even if block->next is NULL. * gfortran.dg/gomp/pr45595.f90: New test. From-SVN: r164004
Diffstat (limited to 'gcc/fortran/openmp.c')
-rw-r--r--gcc/fortran/openmp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/openmp.c b/gcc/fortran/openmp.c
index 0e25bf4..6e81821 100644
--- a/gcc/fortran/openmp.c
+++ b/gcc/fortran/openmp.c
@@ -1516,7 +1516,8 @@ resolve_omp_do (gfc_code *code)
break;
}
do_code = do_code->next;
- if (do_code->op != EXEC_DO && do_code->op != EXEC_DO_WHILE)
+ if (do_code == NULL
+ || (do_code->op != EXEC_DO && do_code->op != EXEC_DO_WHILE))
{
gfc_error ("not enough DO loops for collapsed !$OMP DO at %L",
&code->loc);