re PR fortran/33354 ([4.2 only] MINLOC in combination with SUM gives wrong result)
authorTobias Schlüter <tobi@gcc.gnu.org>
Sat, 29 Sep 2007 07:57:37 +0000 (09:57 +0200)
committerTobias Schlüter <tobi@gcc.gnu.org>
Sat, 29 Sep 2007 07:57:37 +0000 (09:57 +0200)
PR fortran/33354
* gfortran.dg/minmaxloc_4.f90: New.

From-SVN: r128882

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/minmaxloc_4.f90 [new file with mode: 0644]

index 99aade6824a882f3f0f1d82f61bd54b5c572bcb3..a44cf45a65f8d912d7be6896ddb34e868c6fd340 100644 (file)
@@ -1,3 +1,8 @@
+2007-09-28  Tobias Schlüter  <tobi@gcc.gnu.org>
+
+       PR fortran/33354
+       * gfortran.dg/minmaxloc_4.f90: New.
+
 2007-09-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        * gcc.dg/fold-bitand-4.c: Add -fno-common to options on hppa*-*-hpux*.
diff --git a/gcc/testsuite/gfortran.dg/minmaxloc_4.f90 b/gcc/testsuite/gfortran.dg/minmaxloc_4.f90
new file mode 100644 (file)
index 0000000..2ea2e7b
--- /dev/null
@@ -0,0 +1,21 @@
+! { dg-do run }
+! Test to make sure that PR 33354 remains fixed and doesn't regress
+PROGRAM TST
+  IMPLICIT NONE
+  REAL :: A(1,3)
+  REAL :: B(3,1)
+  A(:,1) = 10
+  A(:,2) = 20
+  A(:,3) = 30
+
+  !WRITE(*,*) SUM(A(:,1:3),1)
+  !WRITE(*,*) MINLOC(SUM(A(:,1:3),1),1)
+  if (minloc(sum(a(:,1:3),1),1) .ne. 1) call abort()
+  if (maxloc(sum(a(:,1:3),1),1) .ne. 3) call abort()
+
+  B(1,:) = 10
+  B(2,:) = 20
+  B(3,:) = 30
+  if (minloc(sum(b(1:3,:),2),2) .ne. 1) call abort()
+  if (maxloc(sum(b(1:3,:),2),2) .ne. 3) call abort()
+END PROGRAM TST