! { dg-do compile }
! { dg-options "-std=f95 -fmax-errors=0" }
!
! Testcases from PR fortran/24978
!

SUBROUTINE data_init_scalar_invalid()
  integer :: a
  data       a / 1 /
  data       a / 1 /                             ! { dg-error "re-initialization" }

  integer :: b = 0
  data       b / 1 /                             ! { dg-error "re-initialization" }
END SUBROUTINE

SUBROUTINE data_init_array_invalid()
  ! initialize (at least) one element, re-initialize full array
  integer :: a(3)
  data       a(2) / 2 /
  data       a    / 3*1 /                        ! { dg-error "re-initialization" }

  ! initialize (at least) one element, re-initialize subsection including the element
  integer :: b(3)
  data       b(2)   / 2 /
  data       b(1:2) / 2*1 /                      ! { dg-error "re-initialization" }

  ! initialize subsection, re-initialize (intersecting) subsection
  integer :: c(3)
  data       c(1:2) / 2*1 /
  data       c(2:3) / 1,1 /                      ! { dg-error "re-initialization" }

  ! initialize subsection, re-initialize full array
  integer :: d(3)
  data       d(2:3) / 2*1 /
  data       d      / 2*2, 3 /                   ! { dg-error "re-initialization" }

  ! full array initializer, re-initialize (at least) one element
  integer :: e(3)
  data       e    / 3*1 /
  data       e(2) / 2 /                          ! { dg-error "re-initialization" }

  integer :: f(3) = 0                            ! { dg-error "already is initialized" }
  data       f(2) / 1 /                          ! { dg-error "already is initialized" }

  ! full array initializer, re-initialize subsection
  integer :: g(3)
  data       g      / 3*1 /
  data       g(1:2) / 2*2 /                      ! { dg-error "re-initialization" }

  integer :: h(3) = 1                            ! { dg-error "already is initialized" }
  data       h(2:3) / 2*2 /                      ! { dg-error "already is initialized" }

  ! full array initializer, re-initialize full array
  integer :: i(3)
  data       i   / 3*1 /
  data       i   / 2,2,2 /                       ! { dg-error "re-initialization" }

  integer :: j(3) = 1                            ! { dg-error "already is initialized" }
  data       j   / 3*2 /                         ! { dg-error "already is initialized" }
END SUBROUTINE

SUBROUTINE data_init_matrix_invalid()
  ! initialize (at least) one element, re-initialize full matrix
  integer :: a(3,3)
  data       a(2,2) / 1 /
  data       a      / 9*2 /                      ! { dg-error "re-initialization" }

  ! initialize (at least) one element, re-initialize subsection
  integer :: b(3,3)
  data       b(2,2) / 1 /
  data       b(2,:) / 3*2 /                      ! { dg-error "re-initialization" }

  ! initialize subsection, re-initialize (intersecting) subsection
  integer :: c(3,3)
  data       c(3,:) / 3*1 /, c(:,3) / 3*2 /      ! { dg-error "re-initialization" }

  ! initialize subsection, re-initialize full array
  integer :: d(3,3)
  data       d(2,:) / 1,2,3 /
  data       d      / 9*4 /                      ! { dg-error "re-initialization" }

  ! full array initializer, re-initialize (at least) one element
  integer :: e(3,3)
  data       e      / 9*1 /
  data       e(2,3) / 2 /                        ! { dg-error "re-initialization" }

  integer :: f(3,3) = 1                          ! { dg-error "already is initialized" }
  data       f(3,2) / 2 /                        ! { dg-error "already is initialized" }

  ! full array initializer, re-initialize subsection
  integer :: g(3,3)
  data       g          / 9 * 1 /
  data       g(2:3,2:3) / 2, 2*3, 4 /            ! { dg-error "re-initialization" }

  integer :: h(3,3) = 1                          ! { dg-error "already is initialized" }
  data       h(2:3,2:3) / 2, 2*3, 4 /            ! { dg-error "already is initialized" }

  ! full array initializer, re-initialize full array
  integer :: i(3,3)
  data       i   / 3*1, 3*2, 3*3 /
  data       i   / 9 * 1 /                       ! { dg-error "re-initialization" }

  integer :: j(3,3) = 0                          ! { dg-error "already is initialized" }
  data       j   / 9 * 1 /                       ! { dg-error "already is initialized" }
END SUBROUTINE

SUBROUTINE data_init_misc_invalid()
  ! wrong number of dimensions
  integer :: a(3)
  data       a(1,1) / 1 /                        ! { dg-error "Rank mismatch" }

  ! index out-of-bounds, direct access
  integer :: b(3)
  data       b(-2) / 1 /                         ! { dg-error "below array lower bound" }
                                                 ! { dg-warning "is out of bounds" "" { target *-*-* } .-1 }
  ! index out-of-bounds, implied do-loop (PR32315)
  integer :: i
  character(len=20), dimension(4) :: string
  data (string(i), i = 1, 5) / 'A', 'B', 'C', 'D', 'E' /   ! { dg-error "above array upper bound" }
END SUBROUTINE
