diff options
author | kargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-09-10 17:13:11 +0000 |
---|---|---|
committer | kargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-09-10 17:13:11 +0000 |
commit | be0fbcfb52ab7805189f47a30262c66c29149eaf (patch) | |
tree | 064ae4e1f8c96cc25b46512a36ac2f38311f483c /gcc/fortran/expr.c | |
parent | 3219c02bcde1e9cfd27bd766381e3215c424ee09 (diff) |
2015-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/67526
* gfortran.dg/pr67526.f90: New test.
2015-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/67526
* expr.c (gfc_check_init_expr): Do not dereference a NULL pointer.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227651 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/expr.c')
-rw-r--r-- | gcc/fortran/expr.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index 1d6f310f28ca..3a0ef4d8f553 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -2600,14 +2600,18 @@ gfc_check_init_expr (gfc_expr *e) break; case EXPR_SUBSTRING: - t = gfc_check_init_expr (e->ref->u.ss.start); - if (!t) - break; - - t = gfc_check_init_expr (e->ref->u.ss.end); - if (t) - t = gfc_simplify_expr (e, 0); + if (e->ref) + { + t = gfc_check_init_expr (e->ref->u.ss.start); + if (!t) + break; + t = gfc_check_init_expr (e->ref->u.ss.end); + if (t) + t = gfc_simplify_expr (e, 0); + } + else + t = false; break; case EXPR_STRUCTURE: |