aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2004-10-04 15:32:13 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2004-10-04 15:32:13 +0000
commitf3e41701124d2c5a838c28b99bbc4d8fd69e381e (patch)
treed084eaa8c0a3ce4ee66277e81d81e30e4e3162f3 /gcc
parent15a7ee2932a7cd29a99772a01c07182f1f1f2bf0 (diff)
downloadgcc-f3e41701124d2c5a838c28b99bbc4d8fd69e381e.zip
gcc-f3e41701124d2c5a838c28b99bbc4d8fd69e381e.tar.gz
gcc-f3e41701124d2c5a838c28b99bbc4d8fd69e381e.tar.bz2
re PR libfortran/17706 (reading a value of 0.0 gives a value of -0.0)
2004-10-04 Paul Brook <paul@codesourcery.com> Bud Davis <bdavis9659@comcast.net> PR fortran/17706 PR fortran/16434 * io/format.c (parse_format_list): Set repeat count for S, SP, SS, BN and BZ formats. * io/write.c (output_float): Don't output minus zero. libgfortran/ * gfortran/pr17706.f90: New test. * gfortran.dg/g77/f77-edit-s-out.f: Remove xfail. Co-Authored-By: Bud Davis <bdavis9659@comcast.net> From-SVN: r88512
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gfortran.dg/pr17706.f9024
2 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3f54500..d6c26df 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2004-10-04 Paul Brook <paul@codesourcery.com>
+ Bud Davis <bdavis9659@comcast.net>
+
+ PR fortran/17706
+ PR fortran/16434
+ * gfortran/pr17706.f90: New test.
+ * gfortran.dg/g77/f77-edit-s-out.f: Remove xfail.
+
2004-10-04 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
* gfortran.dg/pr17612.f90: New test.
diff --git a/gcc/testsuite/gfortran.dg/pr17706.f90 b/gcc/testsuite/gfortran.dg/pr17706.f90
new file mode 100644
index 0000000..f678736
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr17706.f90
@@ -0,0 +1,24 @@
+! { dg-do run }
+! PR17706
+! this is a libgfortran test
+! output value -0.00 is not standard compliant
+! derived from NIST F77 test FM406, with extra bits added.
+program pr17706
+ implicit none
+ character(len=10) :: s
+ character(len=10), parameter :: x = "xxxxxxxxxx"
+ real, parameter :: small = -0.0001
+
+ s = x
+ write (s, '(F4.1)') small
+ ! The plus is optional. We choose not to display it.
+ if (s .ne. " 0.0") call abort
+
+ s = x
+ write (s, '(SS,F4.1)') small
+ if (s .ne. " 0.0") call abort
+
+ s = x
+ write (s, '(SP,F4.1)') small
+ if (s .ne. "+0.0") call abort
+end program