! { dg-do compile } ! { dg-require-effective-target lp64 } ! { dg-require-effective-target fortran_integer_16 } subroutine foo(i) implicit none integer, intent(in) :: i character(len=i) :: s s = '' print *, s(1:2_16**64_16+3_16) ! { dg-error "too large" } print *, s(2_16**64_16+3_16:2_16**64_16+4_16) ! { dg-error "too large" } print *, len(s(1:2_16**64_16+3_16)) ! { dg-error "too large" } print *, len(s(2_16**64_16+3_16:2_16**64_16+4_16)) ! { dg-error "too large" } print *, s(2_16**64_16+3_16:1) print *, s(2_16**64_16+4_16:2_16**64_16+3_16) print *, len(s(2_16**64_16+3_16:1)) print *, len(s(2_16**64_16+4_16:2_16**64_16+3_16)) end subroutine