https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86468
Bug ID: 86468 Summary: [9.0 regression] ICE verify_gimple failed Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: juergen.reuter at desy dot de Target Milestone: --- The following coarray code from c.l.f. 2016, Nov 16 leads to an ICE: $ gfortran -fcoarray=single coarr1.f90 coarr1.f90:18:0: subroutine wrapped_point_add(self, to_add) Error: non-trivial conversion at assignment struct array02_integer(kind=4) struct array01_integer(kind=4) _36->point = point; coarr1.f90:18:0: internal compiler error: verify_gimple failed and here is the code: module classes implicit none private public :: wrapped_coarray type :: wrapped_point integer, allocatable :: point(:) contains procedure :: add => wrapped_point_add end type wrapped_point type :: wrapped_coarray type(wrapped_point), allocatable :: caf(:)[:] end type wrapped_coarray contains subroutine wrapped_point_add(self, to_add) class(wrapped_point), intent(inout) :: self integer, intent(in) :: to_add integer, allocatable :: point(:) integer :: points_number if (allocated(self%point)) then points_number = size(self%point, dim=1) allocate(point(1:points_number+1)) point(1:points_number) = self%point point(points_number+1) = to_add call move_alloc(from=point, to=self%point) else allocate(self%point(1)) self%point(1) = to_add end if end subroutine wrapped_point_add end module classes program test use classes implicit none type(wrapped_coarray) :: foo allocate(foo%caf(99)[*]) call foo%caf(32)%add(this_image()) print*, foo%caf(32)%point end program test