diff options
author | Harald Anlauf <anlauf@gmx.de> | 2018-01-18 07:54:17 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-01-18 07:54:17 +0000 |
commit | fcf7923742d34c0cb7270594d4cdab4ea1199672 (patch) | |
tree | ca20843180e214fa4753562588c090a5efbf2c67 /gcc | |
parent | 3c1f3bf69dce25e86a5302d7767c6fc4c2ce418b (diff) | |
download | gcc-fcf7923742d34c0cb7270594d4cdab4ea1199672.zip gcc-fcf7923742d34c0cb7270594d4cdab4ea1199672.tar.gz gcc-fcf7923742d34c0cb7270594d4cdab4ea1199672.tar.bz2 |
re PR fortran/83864 (ICE in gfc_apply_init, at fortran/expr.c:4271)
2018-01-17 Harald Anlauf <anlauf@gmx.de>
PR fortran/83864
* expr.c (add_init_expr_to_sym): Do not dereference NULL pointer.
2018-01-17 Harald Anlauf <anlauf@gmx.de>
PR fortran/83864
* gfortran.dg/pr83864.f90: New test.
From-SVN: r256837
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/expr.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr83864.f90 | 13 |
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 3052533..3fd3bf8 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,10 @@ 2018-01-17 Harald Anlauf <anlauf@gmx.de> + PR fortran/83864 + * expr.c (add_init_expr_to_sym): Do not dereference NULL pointer. + +2018-01-17 Harald Anlauf <anlauf@gmx.de> + PR fortran/83874 * decl.c (add_init_expr_to_sym): Do not dereference NULL pointer. diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index 45ccc18..936b6b6 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -4267,7 +4267,7 @@ gfc_apply_init (gfc_typespec *ts, symbol_attribute *attr, gfc_expr *init) gfc_set_constant_character_len (len, init, -1); else if (init && init->ts.type == BT_CHARACTER - && init->ts.u.cl + && init->ts.u.cl && init->ts.u.cl->length && mpz_cmp (ts->u.cl->length->value.integer, init->ts.u.cl->length->value.integer)) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 492c650..e166d03 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-01-17 Harald Anlauf <anlauf@gmx.de> + + PR fortran/83864 + * gfortran.dg/pr83864.f90: New test. + 2018-01-17 Jeff Law <law@redhat.com> PR testsuite/83883 diff --git a/gcc/testsuite/gfortran.dg/pr83864.f90 b/gcc/testsuite/gfortran.dg/pr83864.f90 new file mode 100644 index 0000000..3bf568a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr83864.f90 @@ -0,0 +1,13 @@ +! { dg-do run } +! PR fortran/83864 +! +! Derived from PR by Contributed by Gerhard Steinmetz <gscfq@t-online.de> +! +program p + implicit none + type t + character :: c(3) = transfer('abc','z',3) + end type t + type(t) :: x + if (any (x%c /= ["a", "b", "c"])) call abort () +end |