f77-edit-i-in.f: Copy from g77.dg and change X to 1X in format.
authorDavid Billinghurst <David.Billinghurst@riotinto.com>
Thu, 8 Jul 2004 23:43:13 +0000 (23:43 +0000)
committerDavid Billinghurst <billingd@gcc.gnu.org>
Thu, 8 Jul 2004 23:43:13 +0000 (23:43 +0000)
2004-07-09  David Billinghurst (David.Billinghurst@riotinto.com)

* gfortran.dg/g77/f77-edit-i-in.f: Copy from g77.dg and
change X to 1X in format.
* gfortran.dg/g77/20010216-1.f:  Copy from g77.dg and
add data statements to conform to standard.

From-SVN: r84328

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/g77/20010216-1.f [new file with mode: 0644]
gcc/testsuite/gfortran.dg/g77/f77-edit-i-in.f [new file with mode: 0644]

index a6ac8bd2b3b3b6564c433d3ba2f8068cdc093e1a..3b94ce020b95197a85c3fcceda2bd60ede3f18f0 100644 (file)
@@ -1,3 +1,10 @@
+2004-07-09  David Billinghurst (David.Billinghurst@riotinto.com)
+
+       * gfortran.dg/g77/f77-edit-i-in.f: Copy from g77.dg and
+       change X to 1X in format.
+       * gfortran.dg/g77/20010216-1.f:  Copy from g77.dg and
+       add data statements to conform to standard.
+
 2004-07-09  David Billinghurst (David.Billinghurst@riotinto.com)
 
        * gfortran.dg/g77/f77-edit-s-out.f: Copy from g77.dg. XFAIL 
diff --git a/gcc/testsuite/gfortran.dg/g77/20010216-1.f b/gcc/testsuite/gfortran.dg/g77/20010216-1.f
new file mode 100644 (file)
index 0000000..a125480
--- /dev/null
@@ -0,0 +1,52 @@
+C Test for bug in reg-stack handling conditional moves.
+C Reported by Tim Prince <tprince@computer.org>
+C
+C { dg-do run { target "i[6789]86-*-*" } }
+C { dg-options "-ffast-math -march=pentiumpro" }
+
+      double precision function foo(x, y)
+         implicit none
+         double precision x, y
+         double precision a, b, c, d
+         if (x /= y) then
+             if (x * y >= 0) then
+                 a = abs(x)
+                 b = abs(y)
+                 c = max(a, b)
+                 d = min(a, b)
+                 foo = 1 - d/c
+             else       
+                 foo = 1
+             end if  
+         else
+             foo = 0
+         end if
+      end
+
+      program test
+      implicit none
+
+      integer ntests
+      parameter (ntests=7)
+      double precision tolerance
+      parameter (tolerance=1.0D-6)
+
+C Each column is a pair of values to feed to foo,
+C and its expected return value.
+      double precision a(ntests), b(ntests), x(ntests)
+      data a /1, -23, -1,   1,   9,  10,  -9/
+      data b /1, -23, 12, -12,  10,   9, -10/
+      data x /0,   0,  1,   1, 0.1, 0.1, 0.1/
+
+      double precision foo
+      double precision result
+      integer i
+
+      do i = 1, ntests
+         result = foo(a(i), b(i))
+         if (abs(result - x(i)) > tolerance) then
+           print *, i, a(i), b(i), x(i), result
+           call abort
+         end if
+      end do
+      end
diff --git a/gcc/testsuite/gfortran.dg/g77/f77-edit-i-in.f b/gcc/testsuite/gfortran.dg/g77/f77-edit-i-in.f
new file mode 100644 (file)
index 0000000..49eb416
--- /dev/null
@@ -0,0 +1,22 @@
+C Test Fortran 77 I edit descriptor for input
+C      (ANSI X3.9-1978 Section 13.5.9.1)
+C
+C Origin: David Billinghurst <David.Billinghurst@riotinto.com>
+C
+C { dg-do run }
+
+      integer i,j
+      character*10 buf
+
+      write(buf,'(A)') '1  -1'
+
+      read(buf,'(I1)') i
+      if ( i.ne.1 ) call abort()
+
+      read(buf,'(1X,I1)') i
+      if ( i.ne.0 ) call abort()
+
+      read(buf,'(1X,I1,1X,I2)') i,j
+      if ( i.ne.0 .and. j.ne.-1 ) call abort()
+
+      end