1! { dg-do compile }
2! Tests the fix for PR33566, in which the first variable array ref
3! to v1 would cause an incompatible ranks error and the second an ICE.
4!
5! Contributed by Mikael Morin <mikael.morin@tele2.fr>
6!
7      program test_vec
8
9      implicit none
10
11
12      integer :: i
13      real    :: x
14
15      type vec3
16        real, dimension(3) :: coords
17      end type vec3
18
19      type(vec3),parameter :: v1 = vec3((/ 1.0, 2.0, 3.0 /))
20      type(vec3)           :: v2
21
22      v2 = vec3((/ 1.0, 2.0, 3.0 /))
23
24
25      x = v1%coords(1)
26
27      do i=1,3
28        x = v1%coords(i)  ! used to fail
29        x = v2%coords(i)
30      end do
31
32      i = 2
33
34      v2 = vec3 (v1%coords ((/i+1, i, i-1/))) ! also broken
35
36      end program test_vec
37