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