Merge -r 127928:132243 from trunk
[official-gcc.git] / gcc / testsuite / gfortran.dg / nan_3.f90
blob957b94d214d346651428a69fc35840da027d35dd
1 ! { dg-do run }
2 ! { dg-options "-fno-range-check" }
3 ! { dg-options "-fno-range-check -mieee" { target sh*-*-* } }
5 ! PR fortran/34319
7 ! Check support of INF/NaN for I/O.
9 program main
10 implicit none
11 real :: r
12 complex :: z
13 character(len=30) :: str
15 str = "nan"
16 read(str,*) r
17 if (.not.isnan(r)) call abort()
18 str = "(nan,4.0)"
19 read(str,*) z
20 if (.not.isnan(real(z)) .or. aimag(z) /= 4.0) call abort()
21 str = "(7.0,nan)"
22 read(str,*) z
23 if (.not.isnan(aimag(z)) .or. real(z) /= 7.0) call abort()
25 str = "inFinity"
26 read(str,*) r
27 if (r <= huge(r)) call abort()
28 str = "(+inFinity,4.0)"
29 read(str,*) z
30 if ((real(z) <= huge(r)) .or. aimag(z) /= 4.0) call abort()
31 str = "(7.0,-inFinity)"
32 read(str,*) z
33 if ((aimag(z) >= -huge(r)) .or. real(z) /= 7.0) call abort()
35 str = "inf"
36 read(str,*) r
37 if (r <= huge(r)) call abort()
38 str = "(+inf,4.0)"
39 read(str,*) z
40 if ((real(z) <= huge(r)) .or. aimag(z) /= 4.0) call abort()
41 str = "(7.0,-inf)"
42 read(str,*) z
43 if ((aimag(z) >= -huge(r)) .or. real(z) /= 7.0) call abort()
45 end program main