-! { dg-do run )
+! { dg-do run }
! PR39304 write of 0.0 with F0.3 gives **
+! PR47567 Small absolute values.
! Test case developed from case provided by reporter.
REAL :: x
CHARACTER(80) :: str
write (str,'(f0.0)') x
if (str.ne."0.") call abort
write (str,'(f0.1)') x
- if (str.ne."0.0") call abort
+ if (str.ne.".0") call abort
write (str,'(f0.2)') x
- if (str.ne."0.00") call abort
+ if (str.ne.".00") call abort
write (str,'(f0.3)') x
- if (str.ne."0.000") call abort
+ if (str.ne.".000") call abort
write (str,'(f0.4)') x
- if (str.ne."0.0000") call abort
+ if (str.ne.".0000") call abort
write (str,'(F0.0)') 0.0
if (str.ne."0.") call abort
write (str,'(F0.0)') 0.001
write (str,'(F0.0)') 0.1
if (str.ne."0.") call abort
write (str,'(F1.0)') -0.0
- if (str.ne."0") call abort
+ if (str.ne."*") call abort
write (str,'(F1.0)') 0.001
if (str.ne."*") call abort
write (str,'(F1.0)') 0.01
write (str,'(F1.0)') 0.1
if (str.ne."*") call abort
write (str,'(F2.0)') -0.001
- if (str.ne."*") call abort
+ if (str.ne."**") call abort
write (str,'(F2.0)') -0.01
if (str.ne."**") call abort
write (str,'(F2.0)') -0.1
if (str.ne."-.00") call abort
write (str,'(F0.3)') -0.0
if (str.ne."-.000") call abort
+ write (str,'(F3.0)') -0.0
+ if (str.ne."-0.") call abort
+ write (str,'(F2.0)') -0.0
+ if (str.ne."**") call abort
+ write (str,'(F1.0)') -0.0
+ if (str.ne."*") call abort
+ write (str,'(F0.1)') -0.0
+ if (str.ne."-.0") call abort
+ write (str,'(F3.1)') -0.0
+ if (str.ne."-.0") call abort
+ write (str,'(F2.1)') -0.0
+ if (str.ne."**") call abort
+ write (str,'(F1.1)') -0.0
+ if (str.ne."*") call abort
END