2019-01-08 Janus Weil <janus@gcc.gnu.org>
PR fortran/88047
* class.c (gfc_find_vtab): For polymorphic typespecs, the components of
the class container may not be available (in case of invalid code).
2019-01-08 Janus Weil <janus@gcc.gnu.org>
PR fortran/88047
* gfortran.dg/class_69.f90: New test case.
From-SVN: r267735
+2019-01-08 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/88047
+ * class.c (gfc_find_vtab): For polymorphic typespecs, the components of
+ the class container may not be available (in case of invalid code).
+
2019-01-08 Richard Biener <rguenther@suse.de>
PR fortran/88611
case BT_DERIVED:
return gfc_find_derived_vtab (ts->u.derived);
case BT_CLASS:
- return gfc_find_derived_vtab (ts->u.derived->components->ts.u.derived);
+ if (ts->u.derived->components && ts->u.derived->components->ts.u.derived)
+ return gfc_find_derived_vtab (ts->u.derived->components->ts.u.derived);
+ else
+ return NULL;
default:
return find_intrinsic_vtab (ts);
}
+2019-01-08 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/88047
+ * gfortran.dg/class_69.f90: New test case.
+
2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
PR target/88717
--- /dev/null
+! { dg-do compile }
+!
+! PR 88047: [9 Regression] ICE in gfc_find_vtab, at fortran/class.c:2843
+!
+! Contributed by G. Steinmetz <gscfq@t-online.de>
+
+subroutine sub_a
+ type t
+ end type
+ class(t) :: x(2) ! { dg-error "must be dummy, allocatable or pointer" }
+ class(t), parameter :: a(2) = t() ! { dg-error "cannot have the PARAMETER attribute" }
+ x = a ! { dg-error "Nonallocatable variable must not be polymorphic in intrinsic assignment" }
+end
+
+subroutine sub_b
+ type t
+ integer :: n
+ end type
+ class(t) :: a, x ! { dg-error "must be dummy, allocatable or pointer" }
+ x = a ! { dg-error "Nonallocatable variable must not be polymorphic in intrinsic assignment" }
+end