! { dg-do run }
! { dg-options "-finit-derived -finit-integer=1" }
!
! Make sure -finit-derived works on class variables.
! Based on class_result_1.f03
!

module points_2i

  implicit none

  type point2i
      integer :: x, y
  end type

contains

 subroutine print( point )
   class(point2i) :: point
   write(*,'(2i4)') point%x, point%y
 end subroutine

 subroutine set_vector( point, rx, ry )
   class(point2i) :: point
   integer :: rx, ry
   point%x = rx
   point%y = ry
 end subroutine

 function add_vector( point, vector )
   class(point2i), intent(in)  :: point, vector
   class(point2i), allocatable :: add_vector
   allocate( add_vector )
   add_vector%x = point%x + vector%x
   add_vector%y = point%y + vector%y
 end function

end module


program init_flag_15

  use points_2i
  implicit none

  type(point2i), target   :: point_2i, vector_2i
  class(point2i), pointer :: point, vector
  type(point2i) :: vsum
  integer :: i

  point  => point_2i ! = (1, 1) due to -finit-integer
  vector => vector_2i
  call set_vector(vector, 2, 2)
  vsum = add_vector(point, vector)

  call print(point)
  call print(vector)
  call print(vsum)

  if (vsum%x .ne. 3 .or. vsum%y .ne. 3) then
    STOP 1
  endif

end program
