! { dg-do run }
!
! Contributed by mrestelli@gmail.com
! Adapated by Andre Vehreschild  <vehre@gcc.gnu.org>
! Test that fix for PR69296 is working.

program p
  implicit none

  type foo
    integer :: i
  end type

  integer :: j, i(3,2)
  class(foo), allocatable :: a(:,:)

  allocate (a(2,6))

  a(1,:)%i = (/ (     j , j=1,6) /)
  a(2,:)%i = (/ ( -10*j , j=1,6) /)

  i(:,1) = (/ 1 , 3 , 5 /)
  i(:,2) = (/ 4 , 5 , 6 /)

  associate( ai => a(:,i(:,1))%i )
    if (any(shape(ai) /= [2, 3])) STOP 1
    if (any(reshape(ai, [6]) /= [1 , -10, 3, -30, 5, -50])) STOP 2
  end associate

  deallocate(a)
end program p
