1! { dg-do run { target fd_truncate } }
2! { dg-add-options ieee }
3! { dg-skip-if "NaN not supported" { spu-*-* } }
4!
5! PR fortran/34427
6!
7! Check that namelists and the real values Inf, NaN, Infinity
8! properly coexist.
9!
10 PROGRAM TEST
11  IMPLICIT NONE
12  real , DIMENSION(11) ::foo
13  integer :: infinity
14  NAMELIST /nl/ foo
15  NAMELIST /nl/ infinity
16  foo = -1.0
17  infinity = -1
18
19  open (10, status="scratch")
20! Works:
21  write (10,*) " &nl foo = 5, 5, 5, nan, infinity, infinity "
22  write (10,*)
23  write (10,*) "      = 1, /"
24  rewind (10)
25  READ (10, NML = nl)
26  close (10)
27
28  if(infinity /= 1) STOP 1
29  if(any(foo(1:3) /= [5.0, 5.0, 5.0]) .or. .not.isnan(foo(4)) &
30     .or. foo(5) <= huge(foo) .or. any(foo(6:11) /= -1.0)) &
31    STOP 2
32! Works too:
33  foo = -1.0
34  infinity = -1
35
36  open (10, status="scratch")
37  rewind (10)
38  write (10,'(a)') "&nl foo = 5, 5, 5, nan, infinity, infinity"
39  write (10,'(a)') "=1,/"
40  rewind (10)
41  READ (10, NML = nl)
42  CLOSE (10)
43
44  if(infinity /= 1) STOP 3
45  if(any(foo(1:3) /= [5.0, 5.0, 5.0]) .or. .not.isnan(foo(4)) &
46     .or. foo(5) <= huge(foo) .or. any(foo(6:11) /= -1.0)) &
47    STOP 4
48 END PROGRAM TEST
49