re PR fortran/69867 (ICE on initializing character in type with array of incompatible data)

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/69867
	* decl.c (build_struct): Ensure that pointers point to something.

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/69867
	* gfortran.dg/pr69867.f90: New test.

From-SVN: r238907
This commit is contained in:
Steven G. Kargl 2016-07-30 20:05:10 +00:00
parent b441ae1d89
commit e4f7a5dffe
4 changed files with 20 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69867
* decl.c (build_struct): Ensure that pointers point to something.
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69962

View File

@ -1926,8 +1926,10 @@ build_struct (const char *name, gfc_charlen *cl, gfc_expr **init,
if (c->initializer->expr_type == EXPR_CONSTANT)
gfc_set_constant_character_len (len, c->initializer, -1);
else if (mpz_cmp (c->ts.u.cl->length->value.integer,
c->initializer->ts.u.cl->length->value.integer))
else if (c->initializer
&& c->initializer->ts.u.cl
&& mpz_cmp (c->ts.u.cl->length->value.integer,
c->initializer->ts.u.cl->length->value.integer))
{
gfc_constructor *ctor;
ctor = gfc_constructor_first (c->initializer->value.constructor);

View File

@ -1,3 +1,8 @@
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69867
* gfortran.dg/pr69867.f90: New test.
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69962

View File

@ -0,0 +1,6 @@
! { dg-do compile }
program p
type t
character(1) :: c(1)=[1] ! { dg-error "convert INTEGER.4. to CHARACTER.1." }
end type
end