! Copyright 2011 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation; either version 3 of the License, or
! (at your option) any later version.
! 
! This program is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
! GNU General Public License for more details.
! 
! You should have received a copy of the GNU General Public License
! along with this program.  If not, see <http://www.gnu.org/licenses/>.

program test
  integer :: foo (2, 3, 4)
  integer :: singledim (4)
  foo (:, :, :) = 10
  foo (2, 3, 4) = 20
  foo (2, 3, 4) = 20            ! break-static
  singledim (:) = 1
  singledim (4) = 2
  call sub (singledim, 4, singledim)
end
subroutine sub (varbound, n, unbound)
  integer :: n, varbound (n), unbound (*)
  varbound (4) = unbound (4)    ! break-variable
end
