blob: 23ed6a680bde53e16336be1008f8815f2e4247ae [file] [log] [blame]
! { dg-do compile }
!
! Test the fix for pr71883, in which an ICE would follow the error.
!
! Contributed by Gerhard Steinmetz <gerhard.steinmetz.fortran@t-online.de>
!
program p
character(3), allocatable :: z(:,:)
z(1:2,1:2) = 'abc'
z(2,1) = z(12) ! { dg-error "Rank mismatch in array reference" }
z(21) = z(1,2) ! { dg-error "Rank mismatch in array reference" }
contains
subroutine a
character(3), allocatable :: z(:,:)
z(1:2,1:2) = 'abc'
z(2,1) = z(-1) ! { dg-error "Rank mismatch in array reference" }
z(2,1) = z(99) ! { dg-error "Rank mismatch in array reference" }
z(2,1) = z(huge(0)) ! { dg-error "Rank mismatch in array reference" }
z(2,1) = z(-huge(0)) ! { dg-error "Rank mismatch in array reference" }
z(-1) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
z(99) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
z(huge(0)) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
z(-huge(0)) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
end subroutine
subroutine b
character(:), allocatable :: z(:,:)
z(1:2,1:2) = 'abc'
z(2,1) = z(-1) ! { dg-error "Rank mismatch in array reference" }
z(2,1) = z(99) ! { dg-error "Rank mismatch in array reference" }
z(2,1) = z(huge(0)) ! { dg-error "Rank mismatch in array reference" }
z(2,1) = z(-huge(0)) ! { dg-error "Rank mismatch in array reference" }
z(-1) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
z(99) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
z(huge(0)) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
z(-huge(0)) = z(2,1) ! { dg-error "Rank mismatch in array reference" }
end subroutine
end