1! { dg-do run }
2! PR69456 Namelist value with trailing sign is ignored without error
3implicit none
4integer :: ios
5character(256) :: errormsg
6real :: r1 = -1
7real :: r2 = -1
8real :: r3 = -1
9real :: r4 = -1
10complex :: c1 = (-1,-1)
11namelist /nml/ r1, r2, r3, r4, c1
12
13open (99, status="scratch")
14
15write(99,*) "&nml"
16write(99,*) "  r1=1+1"      ! Treated as 1e+1!
17write(99,*) "  r2=1-1"      ! Treated as 1e-1!
18write(99,*) "  r3=1+1"      ! Treated as 1e+1!
19write(99,*) "  r4=1-1"      ! Treated as 1e-1!
20write(99,*) "  c1=(1-,1+1)" ! Should give error on item number 5
21write(99,*) "/"
22
23rewind(99)
24
25read (99, nml=nml, iostat=ios, iomsg=errormsg)
26if (ios.ne.5010) STOP 1
27if (scan(errormsg, "5").ne.44) STOP 2
28
29rewind(99)
30
31write(99,*) "&nml"
32write(99,*) "  r1=1+1"       ! Treated as 1e+1!
33write(99,*) "  r2=1-"        ! Should give error on item number 2
34write(99,*) "  r3=1+1"       ! Treated as 1e+1!
35write(99,*) "  r4=1-1"       ! Treated as 1e-1!
36write(99,*) "  c1=(1-1,1+1)" ! Treated as (1e-1,1e+1)!
37write(99,*) "/"
38
39rewind(99)
40
41read (99, nml=nml, iostat=ios, iomsg=errormsg)
42if (ios.ne.5010) STOP 3
43if (scan(errormsg, "2").ne.25) STOP 4
44
45close (99)
46
47end
48