1! { dg-do compile } 2! { dg-require-effective-target lp64 } 3! { dg-require-effective-target fortran_integer_16 } 4subroutine foo(i) 5 implicit none 6 integer, intent(in) :: i 7 character(len=i) :: s 8 9 s = '' 10 print *, s(1:2_16**64_16+3_16) ! { dg-error "too large" } 11 print *, s(2_16**64_16+3_16:2_16**64_16+4_16) ! { dg-error "too large" } 12 print *, len(s(1:2_16**64_16+3_16)) ! { dg-error "too large" } 13 print *, len(s(2_16**64_16+3_16:2_16**64_16+4_16)) ! { dg-error "too large" } 14 15 print *, s(2_16**64_16+3_16:1) 16 print *, s(2_16**64_16+4_16:2_16**64_16+3_16) 17 print *, len(s(2_16**64_16+3_16:1)) 18 print *, len(s(2_16**64_16+4_16:2_16**64_16+3_16)) 19 20end subroutine 21