Commit 0e66f1dd by Harald Anlauf

PR fortran/93337 - ICE in gfc_dt_upper_string, at fortran/module.c:441

When declaring a polymorphic variable that is not a dummy, allocatable or
pointer, an ICE occurred due to a NULL pointer dereference.  Check for
that situation and punt.

gcc/fortran/
	PR fortran/93337
	* class.c (gfc_find_derived_vtab): Punt if name is not set.

(cherry picked from commit d9fb6f2b4f1321b059807ff6073156f07d9d376b)
parent 828047a5
......@@ -2277,6 +2277,9 @@ gfc_find_derived_vtab (gfc_symbol *derived)
if (!derived)
return NULL;
if (!derived->name)
return NULL;
/* Find the gsymbol for the module of use associated derived types. */
if ((derived->attr.use_assoc || derived->attr.used_in_submodule)
&& !derived->attr.vtype && !derived->attr.is_class)
......
! { dg-do compile }
! PR fortran/93337 - ICE in gfc_dt_upper_string, at fortran/module.c:441
program p
type t
character(:), allocatable :: a
end type t
class(t) :: x ! { dg-error "must be dummy, allocatable or pointer" }
x = x ! { dg-error "must not be polymorphic in intrinsic assignment" }
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment