diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 67874f717b5c3d3ba575730106fc533980b6bff9..175edd483a3ac576f5e9cbda3a342420b888b8bf 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,30 +1,35 @@
+2004-06-09  Paul Brook  <paul@codesourcery.com>
+
+	* gfortran.fortran-torture/execure/intrinsic_associated.f90
+	(pointer_to_section): Rewrite to use smaller array.
+
 2004-06-08  David Edelsohn  <edelsohn@gnu.org>
 
-        * gcc.dg/ext/altivec-1.c: XFAIL powerpc-ibm-aix*.
-        * gcc.dg/ext/altivec-10.c: Same.
-        * gcc.dg/ext/altivec-11.c: Same.
-        * gcc.dg/ext/altivec-12.c: Same.
-        * gcc.dg/ext/altivec-13.c: Same.
-        * gcc.dg/ext/altivec-14.c: Same.
-        * gcc.dg/ext/altivec-15.c: Same.
-        * gcc.dg/ext/altivec-16.c: Same.
-        * gcc.dg/ext/altivec-3.c: Same.
-        * gcc.dg/ext/altivec-4.c: Same.
-        * gcc.dg/ext/altivec-6.c: Same.
-        * gcc.dg/ext/altivec-7.c: Same.
-        * gcc.dg/ext/altivec-8.c: Same.
-        * gcc.dg/ext/altivec-varargs-1.c: Same.
-
-        * g++.dg/ext/altivec-1.C: Correct dg syntax.
-        * g++.dg/ext/altivec-10.C: Same.
-        * g++.dg/ext/altivec-2.C: Same.
-        * g++.dg/ext/altivec-3.C: Same.
-        * g++.dg/ext/altivec-4.C: Same.
-        * g++.dg/ext/altivec-5.C: Same.
-        * g++.dg/ext/altivec-6.C: Same.
-        * g++.dg/ext/altivec-7.C: Same.
-        * g++.dg/ext/altivec-8.C: Same.
-        * g++.dg/ext/altivec-9.C: Same.
+	* gcc.dg/ext/altivec-1.c: XFAIL powerpc-ibm-aix*.
+	* gcc.dg/ext/altivec-10.c: Same.
+	* gcc.dg/ext/altivec-11.c: Same.
+	* gcc.dg/ext/altivec-12.c: Same.
+	* gcc.dg/ext/altivec-13.c: Same.
+	* gcc.dg/ext/altivec-14.c: Same.
+	* gcc.dg/ext/altivec-15.c: Same.
+	* gcc.dg/ext/altivec-16.c: Same.
+	* gcc.dg/ext/altivec-3.c: Same.
+	* gcc.dg/ext/altivec-4.c: Same.
+	* gcc.dg/ext/altivec-6.c: Same.
+	* gcc.dg/ext/altivec-7.c: Same.
+	* gcc.dg/ext/altivec-8.c: Same.
+	* gcc.dg/ext/altivec-varargs-1.c: Same.
+
+	* g++.dg/ext/altivec-1.C: Correct dg syntax.
+	* g++.dg/ext/altivec-10.C: Same.
+	* g++.dg/ext/altivec-2.C: Same.
+	* g++.dg/ext/altivec-3.C: Same.
+	* g++.dg/ext/altivec-4.C: Same.
+	* g++.dg/ext/altivec-5.C: Same.
+	* g++.dg/ext/altivec-6.C: Same.
+	* g++.dg/ext/altivec-7.C: Same.
+	* g++.dg/ext/altivec-8.C: Same.
+	* g++.dg/ext/altivec-9.C: Same.
 
 2004-06-08  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
 
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_associated.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_associated.f90
index 24d647ef15af52ec03eb8e0233eaa2633583cef0..f0518deac080de99e57af8b101e703e27a7aa298 100644
--- a/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_associated.f90
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_associated.f90
@@ -7,33 +7,30 @@ program intrinsic_associated
 end
  
 subroutine pointer_to_section ()
-   integer, dimension(100, 100), target :: xy
+   integer, dimension(5, 5), target :: xy
    integer, dimension(:, :), pointer :: window
-   integer i, j, k, m, n
-   data xy /10000*0/
+   data xy /25*0/
    logical t
 
-   window => xy(10:50, 30:60)
+   window => xy(2:4, 3:4)
    window = 10
    window (1, 1) = 0101
-   window (41, 31) = 4161
-   window (41, 1) = 4101
-   window (1, 31) = 0161
+   window (3, 2) = 4161
+   window (3, 1) = 4101
+   window (1, 2) = 0161
 
-   t = associated (window, xy(10:50, 30:60))
+   t = associated (window, xy(2:4, 3:4))
    if (.not.t) call abort ()
-   if (window(1, 1) .ne. xy(10, 30)) call abort ()
-   if (window(41, 31) .ne. xy(50, 60)) call abort ()
-   if (window(1, 31) .ne. xy(10, 60)) call abort ()
-   if (window(41, 1) .ne. xy(50, 30)) call abort ()
-   if (xy(9, 29) .ne. 0) call abort ()
-   if (xy(51,29 ) .ne. 0) call abort ()
-   if (xy(9, 60) .ne. 0) call abort ()
-   if (xy(51, 60) .ne. 0) call abort ()
-   if (xy(11, 31) .ne. 10) call abort ()
-   if (xy(49, 59) .ne. 10) call abort ()
-   if (xy(11, 59) .ne. 10) call abort ()
-   if (xy(49, 31) .ne. 10) call abort ()
+   ! Check that none of the array got mangled
+   if ((xy(2, 3) .ne. 0101) .or. (xy (4, 4) .ne. 4161) &
+       .or. (xy(4, 3) .ne. 4101) .or. (xy (2, 4) .ne. 0161)) call abort ()
+   if (any (xy(:, 1:2) .ne. 0)) call abort ()
+   if (any (xy(:, 5) .ne. 0)) call abort ()
+   if (any (xy (1, 3:4) .ne. 0)) call abort ()
+   if (any (xy (5, 3:4) .ne. 0)) call abort ()
+   if (xy(3, 3) .ne. 10) call abort ()
+   if (xy(3, 4) .ne. 10) call abort ()
+   if (any (xy(2:4, 3:4) .ne. window)) call abort ()
 end
 
 subroutine sub1 (a, ap)