]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
New test from Craig.
authorDave Love <fx@gcc.gnu.org>
Mon, 13 Jul 1998 03:51:25 +0000 (03:51 +0000)
committerDave Love <fx@gcc.gnu.org>
Mon, 13 Jul 1998 03:51:25 +0000 (03:51 +0000)
From-SVN: r21097

gcc/testsuite/g77.f-torture/execute/auto0.f [new file with mode: 0644]
gcc/testsuite/g77.f-torture/execute/auto1.f [new file with mode: 0644]

diff --git a/gcc/testsuite/g77.f-torture/execute/auto0.f b/gcc/testsuite/g77.f-torture/execute/auto0.f
new file mode 100644 (file)
index 0000000..4b6b2f5
--- /dev/null
@@ -0,0 +1,80 @@
+* Test automatic arrays.
+      program auto0
+      implicit none
+      integer i
+      integer j0(40)
+      integer j1(40)
+      integer jc0(40)
+      integer jc1(40)
+      common /jc0/ jc0
+      common /jc1/ jc1
+
+      data j0/40*3/
+      data j1/40*4/
+
+      i = 40
+      call a1 (j0, j1, i)
+
+      do i = 1, 40
+         if (j0(i) .ne. 4) call abort
+         if (j1(i) .ne. 3) call abort
+         if (jc0(i) .ne. 6) call abort
+         if (jc1(i) .ne. 5) call abort
+      end do
+
+      end
+
+      block data jc
+      implicit none
+      integer jc0(40)
+      integer jc1(40)
+      common /jc0/ jc0
+      common /jc1/ jc1
+
+      data jc0/40*5/
+      data jc1/40*6/
+
+      end
+
+      subroutine a1 (j0, j1, n)
+      implicit none
+      integer j0(40), j1(40), n
+      integer k0(n), k1(n)
+      integer i
+      integer jc0(40)
+      integer jc1(40)
+      common /jc0/ jc0
+      common /jc1/ jc1
+
+      do i = 1, 40
+         j0(i) = j1(i) - j0(i)
+         jc0(i) = jc1(i) - jc0(i)
+      end do
+
+      n = -1
+
+      do i = 1, 40
+         k0(i) = n
+         k1(i) = n
+      end do
+
+      do i = 1, 40
+         j1(i) = j1(i) + k0(i) * j0(i)
+         jc1(i) = jc1(i) + k1(i) * jc0(i)
+      end do
+
+      n = 500
+
+      do i = 1, 40
+         if (k0(i) .ne. -1) call abort
+         k0(i) = n
+         if (k1(i) .ne. -1) call abort
+         k1(i) = n
+      end do
+
+      do i = 1, 40
+         j0(i) = j1(i) + j0(i)
+         jc0(i) = jc1(i) + jc0(i)
+      end do
+
+      end
diff --git a/gcc/testsuite/g77.f-torture/execute/auto1.f b/gcc/testsuite/g77.f-torture/execute/auto1.f
new file mode 100644 (file)
index 0000000..ab9044c
--- /dev/null
@@ -0,0 +1,88 @@
+* Test automatic arrays.
+      program auto1
+      implicit none
+      integer i
+      integer j0(40)
+      integer j1(40)
+      integer jc0(40)
+      integer jc1(40)
+      common /jc0/ jc0
+      common /jc1/ jc1
+
+      data j0/40*3/
+      data j1/40*4/
+
+      i = 40
+      call a1 (j0, j1, i)
+
+      do i = 1, 40
+         if (j0(i) .ne. 4) call abort
+         if (j1(i) .ne. 3) call abort
+         if (jc0(i) .ne. 6) call abort
+         if (jc1(i) .ne. 5) call abort
+      end do
+
+      end
+
+      block data jc
+      implicit none
+      integer jc0(40)
+      integer jc1(40)
+      common /jc0/ jc0
+      common /jc1/ jc1
+
+      data jc0/40*5/
+      data jc1/40*6/
+
+      end
+
+      subroutine a1 (j0, j1, n)
+      implicit none
+      integer j0(40), j1(40), n
+      integer k0(n,3,2), k1(n,3,2)
+      integer i,j,k
+      integer jc0(40)
+      integer jc1(40)
+      common /jc0/ jc0
+      common /jc1/ jc1
+
+      do i = 1, 40
+         j0(i) = j1(i) - j0(i)
+         jc0(i) = jc1(i) - jc0(i)
+      end do
+
+      n = -1
+
+      do k = 1, 2
+         do j = 1, 3
+            do i = 1, 40
+               k0(i, j, k) = n
+               k1(i, j, k) = n
+            end do
+         end do
+      end do
+
+      do i = 1, 40
+         j1(i) = j1(i) + k0(i, 3, 2) * j0(i)
+         jc1(i) = jc1(i) + k1(i, 1, 1) * jc0(i)
+      end do
+
+      n = 500
+
+      do k = 1, 2
+         do j = 1, 3
+            do i = 1, 40
+               if (k0(i, j, k) .ne. -1) call abort
+               k0(i, j, k) = n
+               if (k1(i, j, k) .ne. -1) call abort
+               k1(i, j, k) = n
+            end do
+         end do
+      end do
+
+      do i = 1, 40
+         j0(i) = j1(i) + j0(i)
+         jc0(i) = jc1(i) + jc0(i)
+      end do
+
+      end