aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Love <fx@gcc.gnu.org>1998-07-13 03:51:25 +0000
committerDave Love <fx@gcc.gnu.org>1998-07-13 03:51:25 +0000
commit0b9c7914831b80c5903024ac2f3b1fcb470de0a8 (patch)
tree0480daae25e539b4b623e69697f2fb828f2eace3
parentf903b91f37ac738712b8a6494ce261ebccaad9c1 (diff)
downloadgcc-0b9c7914831b80c5903024ac2f3b1fcb470de0a8.zip
gcc-0b9c7914831b80c5903024ac2f3b1fcb470de0a8.tar.gz
gcc-0b9c7914831b80c5903024ac2f3b1fcb470de0a8.tar.bz2
New test from Craig.
From-SVN: r21097
-rw-r--r--gcc/testsuite/g77.f-torture/execute/auto0.f80
-rw-r--r--gcc/testsuite/g77.f-torture/execute/auto1.f88
2 files changed, 168 insertions, 0 deletions
diff --git a/gcc/testsuite/g77.f-torture/execute/auto0.f b/gcc/testsuite/g77.f-torture/execute/auto0.f
new file mode 100644
index 0000000..4b6b2f5
--- /dev/null
+++ b/gcc/testsuite/g77.f-torture/execute/auto0.f
@@ -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
index 0000000..ab9044c
--- /dev/null
+++ b/gcc/testsuite/g77.f-torture/execute/auto1.f
@@ -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