1! { dg-do run }
2!
3! Test the fix for PR37735, in which gfc gagged in the assignement to
4! 'p'.  The array component 'r' caused an ICE.
5!
6! Contributed by Steven Winfield <saw44@cam.ac.uk>
7!
8module PrettyPix_module
9  implicit none
10  type Spline
11     real, allocatable, dimension(:) ::y2
12  end type Spline
13  type Path
14     type(Spline) :: r(3)
15  end type Path
16  type Scene
17     type(path) :: look_at_path
18  end type Scene
19contains
20  subroutine scene_set_look_at_path(this,p)
21    type(scene), intent(inout) :: this
22    type(path),  intent(in)    :: p
23    this%look_at_path = p
24  end subroutine scene_set_look_at_path
25end module PrettyPix_module
26
27  use PrettyPix_module
28  implicit none
29  integer :: i
30  real :: x(3) = [1.0, 2.0, 3.0]
31  type(scene) :: this
32  type(path)  :: p
33  p = path ([spline([x(1)]),spline([x(2)]),spline([x(3)])])
34  call scene_set_look_at_path(this,p)
35  do i = 1, 3
36    if (this%look_at_path%r(i)%y2(1) .ne. x(i)) call abort
37  end do
38end
39