summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/derived_comp_array_ref_7.f90
blob: 890056589898636c666df0c15db78fa96150b669 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
! { dg-do run }
! Check the fix for PR32129 #4 in which the argument 'vec(vy(i, :))' was
! incorrectly simplified, resulting in an ICE.
!
! Reported by Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
!
program testCode
  implicit none
  type vec
    real, dimension(2) :: coords
  end type
  integer :: i
  real, dimension(2,2), parameter :: vy = reshape ((/1,2,3,4/),(/2,2/))
  i = 1
  if (any (foo(vec(vy(i, :))) /= vy(i, :))) call abort ()

contains

  function foo (xin)
    type(vec) :: xin
    real, dimension (2) :: foo
    intent(in)  xin
    foo = xin%coords
  end function
end program