re PR fortran/35994 (MAXLOC and MINLOC off by one with mask)
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Thu, 24 Apr 2008 03:55:05 +0000 (03:55 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Thu, 24 Apr 2008 03:55:05 +0000 (03:55 +0000)
2008-04-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/35994
* gfortran.dg/minmaxloc_5.f90: New test.
* gfortran.dg/minmaxloc_6.f90: New test.

From-SVN: r134616

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

index b03b011b3a1a458a92ea909cac8db32041d3f3f4..b73ce752a8b429e5f1a76801b1d210fc5299da27 100644 (file)
@@ -1,3 +1,9 @@
+2008-04-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/35994
+       * gfortran.dg/minmaxloc_5.f90: New test.
+       * gfortran.dg/minmaxloc_6.f90: New test.
+
 2008-04-23  Steve Ellcey  <sje@cup.hp.com>
 
        * gcc.dg/array-init-1.c: Add big-endian number to check.
diff --git a/gcc/testsuite/gfortran.dg/minmaxloc_5.f90 b/gcc/testsuite/gfortran.dg/minmaxloc_5.f90
new file mode 100644 (file)
index 0000000..92e2103
--- /dev/null
@@ -0,0 +1,18 @@
+! { dg-do run }
+! PR35994 [4.3/4.4 regression] MAXLOC and MINLOC off by one with mask
+program GA4076
+  REAL DDA(100)
+  dda = (/(J1,J1=1,100)/)
+  IDS = MAXLOC(DDA,1)
+  if (ids.ne.100) call abort  !expect 100
+  
+  IDS = MAXLOC(DDA,1, (/(J1,J1=1,100)/) > 50)
+  if (ids.ne.100) call abort  !expect 100
+
+  IDS = minLOC(DDA,1)
+  if (ids.ne.1) call abort  !expect 1
+
+  IDS = MinLOC(DDA,1, (/(J1,J1=1,100)/) > 50)
+  if (ids.ne.51) call abort !expect 51
+
+END
diff --git a/gcc/testsuite/gfortran.dg/minmaxloc_6.f90 b/gcc/testsuite/gfortran.dg/minmaxloc_6.f90
new file mode 100644 (file)
index 0000000..c61fab4
--- /dev/null
@@ -0,0 +1,11 @@
+! { dg-do run }
+! PR35994 [4.3/4.4 regression] MAXLOC and MINLOC off by one with mask
+  REAL DDA(5:104)
+  dda = (/(J1,J1=1,100)/)
+
+  IDS = MAXLOC(DDA,1)
+  if (ids.ne.100) call abort  !expect 100
+  IDS = MAXLOC(DDA,1, (/(J1,J1=1,100)/) > 50)
+  if (ids.ne.100) call abort  !expect 100
+
+  END