https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69659
--- Comment #3 from Gerhard Steinmetz <gerhard.steinmetz.fort...@t-online.de> --- Responsible is the class declaration of "x" : $ cat z1.f90 program p type t integer :: a end type contains subroutine s (x) class(t), intent(inout) :: x(:) print *, x(1)%a end end $ gfortran-6 -frepack-arrays -c z1.f90 z1.f90:6:0: subroutine s (x) internal compiler error: in gfc_conv_descriptor_data_get, at fortran/trans-array.c:144 --- Replacing "class" with "type" : $ cat z2.f90 program p type t integer :: a end type contains subroutine s (x) type(t), intent(inout) :: x(:) print *, x(1)%a end end $ gfortran-6 -frepack-arrays -c z2.f90 # ok