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
|