OSDN Git Service

PR debug/43329
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / nan_3.f90
1 ! { dg-do run }
2 ! { dg-options "-fno-range-check" }
3 ! { dg-add-options ieee }
4 ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
5 !
6 ! PR fortran/34319
7 !
8 ! Check support of INF/NaN for I/O.
9 !
10 program main
11   implicit none
12   real :: r
13   complex :: z
14   character(len=30) :: str
15
16   str = "nan"
17   read(str,*) r
18   if (.not.isnan(r)) call abort()
19   str = "(nan,4.0)"
20   read(str,*) z
21   if (.not.isnan(real(z)) .or. aimag(z) /= 4.0) call abort()
22   str = "(7.0,nan)"
23   read(str,*) z
24   if (.not.isnan(aimag(z)) .or. real(z) /= 7.0) call abort()
25
26   str = "inFinity"
27   read(str,*) r
28   if (r <= huge(r)) call abort()
29   str = "(+inFinity,4.0)"
30   read(str,*) z
31   if ((real(z) <= huge(r)) .or. aimag(z) /= 4.0) call abort()
32   str = "(7.0,-inFinity)"
33   read(str,*) z
34   if ((aimag(z) >= -huge(r)) .or. real(z) /= 7.0) call abort()
35
36   str = "inf"
37   read(str,*) r
38   if (r <= huge(r)) call abort()
39   str = "(+inf,4.0)"
40   read(str,*) z
41   if ((real(z) <= huge(r)) .or. aimag(z) /= 4.0) call abort()
42   str = "(7.0,-inf)"
43   read(str,*) z
44   if ((aimag(z) >= -huge(r)) .or. real(z) /= 7.0) call abort()
45
46 end program main