diff options
author | Tobias Burnus <burnus@net-b.de> | 2013-05-05 16:04:07 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2013-05-05 16:04:07 +0200 |
commit | f0470cc59fa29b3c0e1759d3098f52c6d3959587 (patch) | |
tree | dbd309f6cce0d3d3fc224b8fbc8b7492968942ff /gcc/fortran/resolve.c | |
parent | 07416986eccd280f847845c33215ecb3add7b195 (diff) | |
download | gcc-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.c | 3 |
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); |