aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2013-05-05 16:04:07 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2013-05-05 16:04:07 +0200
commitf0470cc59fa29b3c0e1759d3098f52c6d3959587 (patch)
treedbd309f6cce0d3d3fc224b8fbc8b7492968942ff /gcc/fortran/resolve.c
parent07416986eccd280f847845c33215ecb3add7b195 (diff)
downloadgcc-f0470cc59fa29b3c0e1759d3098f52c6d3959587.zip
gcc-f0470cc59fa29b3c0e1759d3098f52c6d3959587.tar.gz
gcc-f0470cc59fa29b3c0e1759d3098f52c6d3959587.tar.bz2
resolve.c (conformable_arrays): Avoid segfault when ar.start[i] == NULL.
2013-05-05 Tobias Burnus <burnus@net-b.de> * resolve.c (conformable_arrays): Avoid segfault when ar.start[i] == NULL. 2013-05-05 Tobias Burnus <burnus@net-b.de> * gfortran.dg/allocate_with_source_3.f90: New. From-SVN: r198610
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 2860e41..e27b23b 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -6508,6 +6508,9 @@ conformable_arrays (gfc_expr *e1, gfc_expr *e2)
for (i = 0; i < e1->rank; i++)
{
+ if (tail->u.ar.start[i] == NULL)
+ break;
+
if (tail->u.ar.end[i])
{
mpz_set (s, tail->u.ar.end[i]->value.integer);