diff options
author | Janus Weil <janus@gcc.gnu.org> | 2013-05-30 12:19:16 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2013-05-30 12:19:16 +0200 |
commit | 582f2176b5abe7512e514d31c1770def11cb8e38 (patch) | |
tree | e72b08bb1210dc085bbc1237493960ebf6a54e31 /gcc/fortran/resolve.c | |
parent | 0b871ccfce4a95d2d6c8849e0c69a0172fd7ea07 (diff) | |
download | gcc-582f2176b5abe7512e514d31c1770def11cb8e38.zip gcc-582f2176b5abe7512e514d31c1770def11cb8e38.tar.gz gcc-582f2176b5abe7512e514d31c1770def11cb8e38.tar.bz2 |
re PR fortran/54189 (ICE (segfault) with invalid assumed-size dummy)
2013-05-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/54189
* resolve.c (check_assumed_size_reference): Check for e->ref.
2013-05-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/54189
* gfortran.dg/assumed_size_1.f90: New.
From-SVN: r199445
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 4cfc858..b2e8fdc 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -1459,7 +1459,7 @@ check_assumed_size_reference (gfc_symbol *sym, gfc_expr *e) /* FIXME: The comparison "e->ref->u.ar.type == AR_FULL" is wrong. What should it be? */ - if ((e->ref->u.ar.end[e->ref->u.ar.as->rank - 1] == NULL) + if (e->ref && (e->ref->u.ar.end[e->ref->u.ar.as->rank - 1] == NULL) && (e->ref->u.ar.as->type == AS_ASSUMED_SIZE) && (e->ref->u.ar.type == AR_FULL)) { |