! { dg-do compile } ! ! Test the fix for pr71883, in which an ICE would follow the error. ! ! Contributed by Gerhard Steinmetz ! 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