mirror of git://gcc.gnu.org/git/gcc.git
re PR fortran/88047 (ICE in gfc_find_vtab, at fortran/class.c:2843)
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
This commit is contained in:
parent
6976bc87f1
commit
903ecc6c2a
|
|
@ -1,3 +1,9 @@
|
||||||
|
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>
|
2019-01-08 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
PR fortran/88611
|
PR fortran/88611
|
||||||
|
|
|
||||||
|
|
@ -2846,7 +2846,10 @@ gfc_find_vtab (gfc_typespec *ts)
|
||||||
case BT_DERIVED:
|
case BT_DERIVED:
|
||||||
return gfc_find_derived_vtab (ts->u.derived);
|
return gfc_find_derived_vtab (ts->u.derived);
|
||||||
case BT_CLASS:
|
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:
|
default:
|
||||||
return find_intrinsic_vtab (ts);
|
return find_intrinsic_vtab (ts);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
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>
|
2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR target/88717
|
PR target/88717
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
! { 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
|
||||||
Loading…
Reference in New Issue