backport: re PR fortran/83864 (ICE in gfc_apply_init, at fortran/expr.c:4271)
2018-01-18 Harald Anlauf <anlauf@gmx.de> Backport from mainline PR fortran/83864 * expr.c (gfc_apply_init): Do not dereference NULL pointer. 2018-01-18 Harald Anlauf <anlauf@gmx.de> Backport from mainline PR fortran/83864 * gfortran.dg/pr83864.f90: New test. From-SVN: r256857
This commit is contained in:
parent
4a560547e3
commit
8f87c1ab9b
|
@ -1,3 +1,9 @@
|
||||||
|
2018-01-18 Harald Anlauf <anlauf@gmx.de>
|
||||||
|
|
||||||
|
Backport from mainline
|
||||||
|
PR fortran/83864
|
||||||
|
* expr.c (gfc_apply_init): Do not dereference NULL pointer.
|
||||||
|
|
||||||
2018-01-17 Harald Anlauf <anlauf@gmx.de>
|
2018-01-17 Harald Anlauf <anlauf@gmx.de>
|
||||||
|
|
||||||
Backport from mainline
|
Backport from mainline
|
||||||
|
|
|
@ -4130,7 +4130,8 @@ gfc_apply_init (gfc_typespec *ts, symbol_attribute *attr, gfc_expr *init)
|
||||||
if (init->expr_type == EXPR_CONSTANT)
|
if (init->expr_type == EXPR_CONSTANT)
|
||||||
gfc_set_constant_character_len (len, init, -1);
|
gfc_set_constant_character_len (len, init, -1);
|
||||||
else if (init
|
else if (init
|
||||||
&& init->ts.u.cl
|
&& init->ts.type == BT_CHARACTER
|
||||||
|
&& init->ts.u.cl && init->ts.u.cl->length
|
||||||
&& mpz_cmp (ts->u.cl->length->value.integer,
|
&& mpz_cmp (ts->u.cl->length->value.integer,
|
||||||
init->ts.u.cl->length->value.integer))
|
init->ts.u.cl->length->value.integer))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2018-01-18 Harald Anlauf <anlauf@gmx.de>
|
||||||
|
|
||||||
|
Backport from mainline
|
||||||
|
PR fortran/83864
|
||||||
|
* gfortran.dg/pr83864.f90: New test.
|
||||||
|
|
||||||
2018-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
2018-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||||
|
|
||||||
Backport from mainline
|
Backport from mainline
|
||||||
|
|
|
@ -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
|
Loading…
Reference in New Issue