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