summaryrefslogtreecommitdiff
path: root/gcc/fortran/expr.c
diff options
context:
space:
mode:
authorkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-10 17:13:11 +0000
committerkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-10 17:13:11 +0000
commitbe0fbcfb52ab7805189f47a30262c66c29149eaf (patch)
tree064ae4e1f8c96cc25b46512a36ac2f38311f483c /gcc/fortran/expr.c
parent3219c02bcde1e9cfd27bd766381e3215c424ee09 (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.c18
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: