1! { dg-do run }
2! { dg-options "-fno-range-check" }
3! PR 52428 Read IO of integers near the end of range. Note that we
4! support the two's complement representation even though the Fortran
5! numerical model has a symmetric range.  (The -fno-range-check option
6! is needed to allow the -2147483648 literal.)
7program int_range
8  implicit none
9  character(25) :: inputline = "-2147483648"
10  integer(4) ::  test
11  integer :: st
12
13  read(inputline,100) test
14100 format(1i11)
15  if (test /= -2147483648) call abort
16  inputline(1:1) = " "
17  read(inputline, 100, iostat=st) test
18  if (st == 0) call abort
19  inputline(11:11) = "7"
20  read(inputline, 100) test
21  if (test /= 2147483647) call abort
22
23  ! Same as above but with list-formatted IO
24  inputline = "-2147483648"
25  read(inputline, *) test
26  if (test /= -2147483648) call abort
27  inputline(1:1) = " "
28  read(inputline, *, iostat=st) test
29  if (st == 0) call abort
30  inputline(11:11) = "7"
31  read(inputline, *) test
32  if (test /= 2147483647) call abort
33
34end program int_range
35