re PR fortran/35995 (ANY, ALL, and COUNT errors for zero sized sections)
authorThomas Koenig <tkoenig@gcc.gnu.org>
Sun, 4 May 2008 19:07:28 +0000 (19:07 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Sun, 4 May 2008 19:07:28 +0000 (19:07 +0000)
2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR libfortran/35995
* m4/ifunction_logical.m4:  If the extent of "array"
is less than zero, set it to zero.  Use an explicit
flag for breaking out of the main loop to avoid, because
the data pointer for "array" may be NULL for an empty
array.
* m4/ifunction.m4:  Likewise.
* generated/all_l1.c: Regenerated.
* generated/all_l16.c: Regenerated.
* generated/all_l2.c: Regenerated.
* generated/all_l4.c: Regenerated.
* generated/all_l8.c: Regenerated.
* generated/any_l1.c: Regenerated.
* generated/any_l16.c: Regenerated.
* generated/any_l2.c: Regenerated.
* generated/any_l4.c: Regenerated.
* generated/any_l8.c: Regenerated.
* generated/count_16_l.c: Regenerated.
* generated/count_1_l.c: Regenerated.
* generated/count_2_l.c: Regenerated.
* generated/count_4_l.c: Regenerated.
* generated/count_8_l.c: Regenerated.
* generated/maxloc1_16_i1.c: Regenerated.
* generated/maxloc1_16_i16.c: Regenerated.
* generated/maxloc1_16_i2.c: Regenerated.
* generated/maxloc1_16_i4.c: Regenerated.
* generated/maxloc1_16_i8.c: Regenerated.
* generated/maxloc1_16_r10.c: Regenerated.
* generated/maxloc1_16_r16.c: Regenerated.
* generated/maxloc1_16_r4.c: Regenerated.
* generated/maxloc1_16_r8.c: Regenerated.
* generated/maxloc1_4_i1.c: Regenerated.
* generated/maxloc1_4_i16.c: Regenerated.
* generated/maxloc1_4_i2.c: Regenerated.
* generated/maxloc1_4_i4.c: Regenerated.
* generated/maxloc1_4_i8.c: Regenerated.
* generated/maxloc1_4_r10.c: Regenerated.
* generated/maxloc1_4_r16.c: Regenerated.
* generated/maxloc1_4_r4.c: Regenerated.
* generated/maxloc1_4_r8.c: Regenerated.
* generated/maxloc1_8_i1.c: Regenerated.
* generated/maxloc1_8_i16.c: Regenerated.
* generated/maxloc1_8_i2.c: Regenerated.
* generated/maxloc1_8_i4.c: Regenerated.
* generated/maxloc1_8_i8.c: Regenerated.
* generated/maxloc1_8_r10.c: Regenerated.
* generated/maxloc1_8_r16.c: Regenerated.
* generated/maxloc1_8_r4.c: Regenerated.
* generated/maxloc1_8_r8.c: Regenerated.
* generated/maxval_i1.c: Regenerated.
* generated/maxval_i16.c: Regenerated.
* generated/maxval_i2.c: Regenerated.
* generated/maxval_i4.c: Regenerated.
* generated/maxval_i8.c: Regenerated.
* generated/maxval_r10.c: Regenerated.
* generated/maxval_r16.c: Regenerated.
* generated/maxval_r4.c: Regenerated.
* generated/maxval_r8.c: Regenerated.
* generated/minloc1_16_i1.c: Regenerated.
* generated/minloc1_16_i16.c: Regenerated.
* generated/minloc1_16_i2.c: Regenerated.
* generated/minloc1_16_i4.c: Regenerated.
* generated/minloc1_16_i8.c: Regenerated.
* generated/minloc1_16_r10.c: Regenerated.
* generated/minloc1_16_r16.c: Regenerated.
* generated/minloc1_16_r4.c: Regenerated.
* generated/minloc1_16_r8.c: Regenerated.
* generated/minloc1_4_i1.c: Regenerated.
* generated/minloc1_4_i16.c: Regenerated.
* generated/minloc1_4_i2.c: Regenerated.
* generated/minloc1_4_i4.c: Regenerated.
* generated/minloc1_4_i8.c: Regenerated.
* generated/minloc1_4_r10.c: Regenerated.
* generated/minloc1_4_r16.c: Regenerated.
* generated/minloc1_4_r4.c: Regenerated.
* generated/minloc1_4_r8.c: Regenerated.
* generated/minloc1_8_i1.c: Regenerated.
* generated/minloc1_8_i16.c: Regenerated.
* generated/minloc1_8_i2.c: Regenerated.
* generated/minloc1_8_i4.c: Regenerated.
* generated/minloc1_8_i8.c: Regenerated.
* generated/minloc1_8_r10.c: Regenerated.
* generated/minloc1_8_r16.c: Regenerated.
* generated/minloc1_8_r4.c: Regenerated.
* generated/minloc1_8_r8.c: Regenerated.
* generated/minval_i1.c: Regenerated.
* generated/minval_i16.c: Regenerated.
* generated/minval_i2.c: Regenerated.
* generated/minval_i4.c: Regenerated.
* generated/minval_i8.c: Regenerated.
* generated/minval_r10.c: Regenerated.
* generated/minval_r16.c: Regenerated.
* generated/minval_r4.c: Regenerated.
* generated/minval_r8.c: Regenerated.
* generated/product_c10.c: Regenerated.
* generated/product_c16.c: Regenerated.
* generated/product_c4.c: Regenerated.
* generated/product_c8.c: Regenerated.
* generated/product_i1.c: Regenerated.
* generated/product_i16.c: Regenerated.
* generated/product_i2.c: Regenerated.
* generated/product_i4.c: Regenerated.
* generated/product_i8.c: Regenerated.
* generated/product_r10.c: Regenerated.
* generated/product_r16.c: Regenerated.
* generated/product_r4.c: Regenerated.
* generated/product_r8.c: Regenerated.
* generated/sum_c10.c: Regenerated.
* generated/sum_c16.c: Regenerated.
* generated/sum_c4.c: Regenerated.
* generated/sum_c8.c: Regenerated.
* generated/sum_i1.c: Regenerated.
* generated/sum_i16.c: Regenerated.
* generated/sum_i2.c: Regenerated.
* generated/sum_i4.c: Regenerated.
* generated/sum_i8.c: Regenerated.
* generated/sum_r10.c: Regenerated.
* generated/sum_r16.c: Regenerated.
* generated/sum_r4.c: Regenerated.
* generated/sum_r8.c: Regenerated.

2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR libfortran/35995
* gfortran.dg/intrinsic_ifunction_1.f90:  New test case.

From-SVN: r134934

118 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/intrinsic_ifunction_1.f90 [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/generated/all_l1.c
libgfortran/generated/all_l16.c
libgfortran/generated/all_l2.c
libgfortran/generated/all_l4.c
libgfortran/generated/all_l8.c
libgfortran/generated/any_l1.c
libgfortran/generated/any_l16.c
libgfortran/generated/any_l2.c
libgfortran/generated/any_l4.c
libgfortran/generated/any_l8.c
libgfortran/generated/count_16_l.c
libgfortran/generated/count_1_l.c
libgfortran/generated/count_2_l.c
libgfortran/generated/count_4_l.c
libgfortran/generated/count_8_l.c
libgfortran/generated/maxloc1_16_i1.c
libgfortran/generated/maxloc1_16_i16.c
libgfortran/generated/maxloc1_16_i2.c
libgfortran/generated/maxloc1_16_i4.c
libgfortran/generated/maxloc1_16_i8.c
libgfortran/generated/maxloc1_16_r10.c
libgfortran/generated/maxloc1_16_r16.c
libgfortran/generated/maxloc1_16_r4.c
libgfortran/generated/maxloc1_16_r8.c
libgfortran/generated/maxloc1_4_i1.c
libgfortran/generated/maxloc1_4_i16.c
libgfortran/generated/maxloc1_4_i2.c
libgfortran/generated/maxloc1_4_i4.c
libgfortran/generated/maxloc1_4_i8.c
libgfortran/generated/maxloc1_4_r10.c
libgfortran/generated/maxloc1_4_r16.c
libgfortran/generated/maxloc1_4_r4.c
libgfortran/generated/maxloc1_4_r8.c
libgfortran/generated/maxloc1_8_i1.c
libgfortran/generated/maxloc1_8_i16.c
libgfortran/generated/maxloc1_8_i2.c
libgfortran/generated/maxloc1_8_i4.c
libgfortran/generated/maxloc1_8_i8.c
libgfortran/generated/maxloc1_8_r10.c
libgfortran/generated/maxloc1_8_r16.c
libgfortran/generated/maxloc1_8_r4.c
libgfortran/generated/maxloc1_8_r8.c
libgfortran/generated/maxval_i1.c
libgfortran/generated/maxval_i16.c
libgfortran/generated/maxval_i2.c
libgfortran/generated/maxval_i4.c
libgfortran/generated/maxval_i8.c
libgfortran/generated/maxval_r10.c
libgfortran/generated/maxval_r16.c
libgfortran/generated/maxval_r4.c
libgfortran/generated/maxval_r8.c
libgfortran/generated/minloc1_16_i1.c
libgfortran/generated/minloc1_16_i16.c
libgfortran/generated/minloc1_16_i2.c
libgfortran/generated/minloc1_16_i4.c
libgfortran/generated/minloc1_16_i8.c
libgfortran/generated/minloc1_16_r10.c
libgfortran/generated/minloc1_16_r16.c
libgfortran/generated/minloc1_16_r4.c
libgfortran/generated/minloc1_16_r8.c
libgfortran/generated/minloc1_4_i1.c
libgfortran/generated/minloc1_4_i16.c
libgfortran/generated/minloc1_4_i2.c
libgfortran/generated/minloc1_4_i4.c
libgfortran/generated/minloc1_4_i8.c
libgfortran/generated/minloc1_4_r10.c
libgfortran/generated/minloc1_4_r16.c
libgfortran/generated/minloc1_4_r4.c
libgfortran/generated/minloc1_4_r8.c
libgfortran/generated/minloc1_8_i1.c
libgfortran/generated/minloc1_8_i16.c
libgfortran/generated/minloc1_8_i2.c
libgfortran/generated/minloc1_8_i4.c
libgfortran/generated/minloc1_8_i8.c
libgfortran/generated/minloc1_8_r10.c
libgfortran/generated/minloc1_8_r16.c
libgfortran/generated/minloc1_8_r4.c
libgfortran/generated/minloc1_8_r8.c
libgfortran/generated/minval_i1.c
libgfortran/generated/minval_i16.c
libgfortran/generated/minval_i2.c
libgfortran/generated/minval_i4.c
libgfortran/generated/minval_i8.c
libgfortran/generated/minval_r10.c
libgfortran/generated/minval_r16.c
libgfortran/generated/minval_r4.c
libgfortran/generated/minval_r8.c
libgfortran/generated/product_c10.c
libgfortran/generated/product_c16.c
libgfortran/generated/product_c4.c
libgfortran/generated/product_c8.c
libgfortran/generated/product_i1.c
libgfortran/generated/product_i16.c
libgfortran/generated/product_i2.c
libgfortran/generated/product_i4.c
libgfortran/generated/product_i8.c
libgfortran/generated/product_r10.c
libgfortran/generated/product_r16.c
libgfortran/generated/product_r4.c
libgfortran/generated/product_r8.c
libgfortran/generated/sum_c10.c
libgfortran/generated/sum_c16.c
libgfortran/generated/sum_c4.c
libgfortran/generated/sum_c8.c
libgfortran/generated/sum_i1.c
libgfortran/generated/sum_i16.c
libgfortran/generated/sum_i2.c
libgfortran/generated/sum_i4.c
libgfortran/generated/sum_i8.c
libgfortran/generated/sum_r10.c
libgfortran/generated/sum_r16.c
libgfortran/generated/sum_r4.c
libgfortran/generated/sum_r8.c
libgfortran/m4/ifunction.m4
libgfortran/m4/ifunction_logical.m4

index 9bf58a970a5ecf86eb0a929237bbcd56cbc21a67..11fb08ced85f2666ae3fdc0290f2d38ab7d1a808 100644 (file)
@@ -1,3 +1,8 @@
+2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/35995
+       * gfortran.dg/intrinsic_ifunction_1.f90:  New test case.
+
 2008-05-04   Andy Hutchinson   <hutchinsonandy@aim.com>
 
        * gcc.dg/nested-func-5.c: Skip for target without trampolines.
diff --git a/gcc/testsuite/gfortran.dg/intrinsic_ifunction_1.f90 b/gcc/testsuite/gfortran.dg/intrinsic_ifunction_1.f90
new file mode 100644 (file)
index 0000000..a27c220
--- /dev/null
@@ -0,0 +1,43 @@
+! { dg-do run }
+! PR 35995 - ifunction.m4 and ifunction_logical.m4 had a bug
+! where zero-sized arguments were not handled correctly.
+! Test case provided by Dick Hendrickson, amended by
+! Thomas Koenig.
+
+      program try_gf0026_etc
+
+      call       gf0026(  0,  1)
+      call       foo   (  0,  1)
+
+      end program
+
+      SUBROUTINE GF0026(nf0,nf1)
+      LOGICAL LDA(9)
+      INTEGER IDA(NF0,9), iii(9)
+
+      lda = (/ (i/2*2 .eq. I, i=1,9) /)
+      LDA = ALL ( IDA .NE. -1000,  1)
+      if (.not. all(lda)) call abort
+      if (.not. all(ida .ne. -1000)) call abort
+
+      lda = (/ (i/2*2 .eq. I, i=1,9) /)
+      LDA = any ( IDA .NE. -1000,  1)
+      print *, lda          !expect FALSE
+      if (any(lda)) call abort
+      print *, any(ida .ne. -1000)   !expect FALSE
+      if (any(ida .ne. -1000)) call abort
+
+      iii = 137
+      iii = count ( IDA .NE. -1000,  1)
+      if (any(iii /= 0)) call abort
+      if (count(ida .ne. -1000) /= 0) call abort
+
+      END SUBROUTINE
+
+      subroutine foo (nf0, nf1)
+      integer, dimension(9):: res, iii
+      integer, dimension(nf0,9) :: ida
+      res = (/ (-i, i=1,9) /)
+      res = product (ida, 1)
+      if (any(res /= 1)) call abort
+      end subroutine foo
index ec9ab88b75333c5413a802335d6b240a1d6d96a9..9da45d503c5f86af5fa9f9dd4b6271103d456d06 100644 (file)
@@ -1,3 +1,126 @@
+2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/35995
+       * m4/ifunction_logical.m4:  If the extent of "array"
+       is less than zero, set it to zero.  Use an explicit
+       flag for breaking out of the main loop to avoid, because
+       the data pointer for "array" may be NULL for an empty
+       array.
+       * m4/ifunction.m4:  Likewise.
+       * generated/all_l1.c: Regenerated.
+       * generated/all_l16.c: Regenerated.
+       * generated/all_l2.c: Regenerated.
+       * generated/all_l4.c: Regenerated.
+       * generated/all_l8.c: Regenerated.
+       * generated/any_l1.c: Regenerated.
+       * generated/any_l16.c: Regenerated.
+       * generated/any_l2.c: Regenerated.
+       * generated/any_l4.c: Regenerated.
+       * generated/any_l8.c: Regenerated.
+       * generated/count_16_l.c: Regenerated.
+       * generated/count_1_l.c: Regenerated.
+       * generated/count_2_l.c: Regenerated.
+       * generated/count_4_l.c: Regenerated.
+       * generated/count_8_l.c: Regenerated.
+       * generated/maxloc1_16_i1.c: Regenerated.
+       * generated/maxloc1_16_i16.c: Regenerated.
+       * generated/maxloc1_16_i2.c: Regenerated.
+       * generated/maxloc1_16_i4.c: Regenerated.
+       * generated/maxloc1_16_i8.c: Regenerated.
+       * generated/maxloc1_16_r10.c: Regenerated.
+       * generated/maxloc1_16_r16.c: Regenerated.
+       * generated/maxloc1_16_r4.c: Regenerated.
+       * generated/maxloc1_16_r8.c: Regenerated.
+       * generated/maxloc1_4_i1.c: Regenerated.
+       * generated/maxloc1_4_i16.c: Regenerated.
+       * generated/maxloc1_4_i2.c: Regenerated.
+       * generated/maxloc1_4_i4.c: Regenerated.
+       * generated/maxloc1_4_i8.c: Regenerated.
+       * generated/maxloc1_4_r10.c: Regenerated.
+       * generated/maxloc1_4_r16.c: Regenerated.
+       * generated/maxloc1_4_r4.c: Regenerated.
+       * generated/maxloc1_4_r8.c: Regenerated.
+       * generated/maxloc1_8_i1.c: Regenerated.
+       * generated/maxloc1_8_i16.c: Regenerated.
+       * generated/maxloc1_8_i2.c: Regenerated.
+       * generated/maxloc1_8_i4.c: Regenerated.
+       * generated/maxloc1_8_i8.c: Regenerated.
+       * generated/maxloc1_8_r10.c: Regenerated.
+       * generated/maxloc1_8_r16.c: Regenerated.
+       * generated/maxloc1_8_r4.c: Regenerated.
+       * generated/maxloc1_8_r8.c: Regenerated.
+       * generated/maxval_i1.c: Regenerated.
+       * generated/maxval_i16.c: Regenerated.
+       * generated/maxval_i2.c: Regenerated.
+       * generated/maxval_i4.c: Regenerated.
+       * generated/maxval_i8.c: Regenerated.
+       * generated/maxval_r10.c: Regenerated.
+       * generated/maxval_r16.c: Regenerated.
+       * generated/maxval_r4.c: Regenerated.
+       * generated/maxval_r8.c: Regenerated.
+       * generated/minloc1_16_i1.c: Regenerated.
+       * generated/minloc1_16_i16.c: Regenerated.
+       * generated/minloc1_16_i2.c: Regenerated.
+       * generated/minloc1_16_i4.c: Regenerated.
+       * generated/minloc1_16_i8.c: Regenerated.
+       * generated/minloc1_16_r10.c: Regenerated.
+       * generated/minloc1_16_r16.c: Regenerated.
+       * generated/minloc1_16_r4.c: Regenerated.
+       * generated/minloc1_16_r8.c: Regenerated.
+       * generated/minloc1_4_i1.c: Regenerated.
+       * generated/minloc1_4_i16.c: Regenerated.
+       * generated/minloc1_4_i2.c: Regenerated.
+       * generated/minloc1_4_i4.c: Regenerated.
+       * generated/minloc1_4_i8.c: Regenerated.
+       * generated/minloc1_4_r10.c: Regenerated.
+       * generated/minloc1_4_r16.c: Regenerated.
+       * generated/minloc1_4_r4.c: Regenerated.
+       * generated/minloc1_4_r8.c: Regenerated.
+       * generated/minloc1_8_i1.c: Regenerated.
+       * generated/minloc1_8_i16.c: Regenerated.
+       * generated/minloc1_8_i2.c: Regenerated.
+       * generated/minloc1_8_i4.c: Regenerated.
+       * generated/minloc1_8_i8.c: Regenerated.
+       * generated/minloc1_8_r10.c: Regenerated.
+       * generated/minloc1_8_r16.c: Regenerated.
+       * generated/minloc1_8_r4.c: Regenerated.
+       * generated/minloc1_8_r8.c: Regenerated.
+       * generated/minval_i1.c: Regenerated.
+       * generated/minval_i16.c: Regenerated.
+       * generated/minval_i2.c: Regenerated.
+       * generated/minval_i4.c: Regenerated.
+       * generated/minval_i8.c: Regenerated.
+       * generated/minval_r10.c: Regenerated.
+       * generated/minval_r16.c: Regenerated.
+       * generated/minval_r4.c: Regenerated.
+       * generated/minval_r8.c: Regenerated.
+       * generated/product_c10.c: Regenerated.
+       * generated/product_c16.c: Regenerated.
+       * generated/product_c4.c: Regenerated.
+       * generated/product_c8.c: Regenerated.
+       * generated/product_i1.c: Regenerated.
+       * generated/product_i16.c: Regenerated.
+       * generated/product_i2.c: Regenerated.
+       * generated/product_i4.c: Regenerated.
+       * generated/product_i8.c: Regenerated.
+       * generated/product_r10.c: Regenerated.
+       * generated/product_r16.c: Regenerated.
+       * generated/product_r4.c: Regenerated.
+       * generated/product_r8.c: Regenerated.
+       * generated/sum_c10.c: Regenerated.
+       * generated/sum_c16.c: Regenerated.
+       * generated/sum_c4.c: Regenerated.
+       * generated/sum_c8.c: Regenerated.
+       * generated/sum_i1.c: Regenerated.
+       * generated/sum_i16.c: Regenerated.
+       * generated/sum_i2.c: Regenerated.
+       * generated/sum_i4.c: Regenerated.
+       * generated/sum_i8.c: Regenerated.
+       * generated/sum_r10.c: Regenerated.
+       * generated/sum_r16.c: Regenerated.
+       * generated/sum_r4.c: Regenerated.
+       * generated/sum_r8.c: Regenerated.
+
 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR libfortran/35990
index 385726af3994c95b0cf04979e4176221ea21e8cc..8345adc1f6e65ad931fa7db28be8defdd4d63382 100644 (file)
@@ -57,6 +57,7 @@ all_l1 (gfc_array_l1 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ all_l1 (gfc_array_l1 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ all_l1 (gfc_array_l1 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_LOGICAL_1 result;
@@ -207,7 +212,7 @@ all_l1 (gfc_array_l1 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index fd6a9f0b7156e7cb8de35083aa84d55e8d4fbb20..ee6f8f93c9fbd565d236687ad9cf16e44b9dce58 100644 (file)
@@ -57,6 +57,7 @@ all_l16 (gfc_array_l16 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ all_l16 (gfc_array_l16 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ all_l16 (gfc_array_l16 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_LOGICAL_16 result;
@@ -207,7 +212,7 @@ all_l16 (gfc_array_l16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index 16b4ec94ea1dabcc5b7f301d79105ce9bf3d9ca3..dd069c57d61251b041dd67c7d034be6f23981af1 100644 (file)
@@ -57,6 +57,7 @@ all_l2 (gfc_array_l2 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ all_l2 (gfc_array_l2 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ all_l2 (gfc_array_l2 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_LOGICAL_2 result;
@@ -207,7 +212,7 @@ all_l2 (gfc_array_l2 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index ef8bdcdddbae45ade0728f48f4c46fc0a67034c7..00a0896f669fd9759841a2b8e1ec314c5dd69048 100644 (file)
@@ -57,6 +57,7 @@ all_l4 (gfc_array_l4 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ all_l4 (gfc_array_l4 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ all_l4 (gfc_array_l4 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_LOGICAL_4 result;
@@ -207,7 +212,7 @@ all_l4 (gfc_array_l4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index 8e7a659a2832b797de4312343a663b68d84adae5..b08c19cdba57a3b1eb9fe88eaf9940653c28f412 100644 (file)
@@ -57,6 +57,7 @@ all_l8 (gfc_array_l8 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ all_l8 (gfc_array_l8 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ all_l8 (gfc_array_l8 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_LOGICAL_8 result;
@@ -207,7 +212,7 @@ all_l8 (gfc_array_l8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index 8975438ae59b6e2ca6af7aff6e8b80bd66d8fd13..2d11eb1a3b403c45c1f9c6882343ac7e05735662 100644 (file)
@@ -57,6 +57,7 @@ any_l1 (gfc_array_l1 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ any_l1 (gfc_array_l1 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ any_l1 (gfc_array_l1 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_LOGICAL_1 result;
@@ -207,7 +212,7 @@ any_l1 (gfc_array_l1 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index 060a4b82127723bf00a3db776717fa42a2b24708..3d7cd1b1ef9c8d5a4d2520d3b3d0c66b0b35c0d9 100644 (file)
@@ -57,6 +57,7 @@ any_l16 (gfc_array_l16 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ any_l16 (gfc_array_l16 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ any_l16 (gfc_array_l16 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_LOGICAL_16 result;
@@ -207,7 +212,7 @@ any_l16 (gfc_array_l16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index 73db5aea082de39db7f94c03ce49d18abc588420..1c874182b3e2e8c49b9609758846c9b7af1d4602 100644 (file)
@@ -57,6 +57,7 @@ any_l2 (gfc_array_l2 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ any_l2 (gfc_array_l2 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ any_l2 (gfc_array_l2 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_LOGICAL_2 result;
@@ -207,7 +212,7 @@ any_l2 (gfc_array_l2 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index 3e239cab10680ffff3fc807cb228cad133d21044..71a8cb0e63fb080d8009bec4b51c6ac571205a07 100644 (file)
@@ -57,6 +57,7 @@ any_l4 (gfc_array_l4 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ any_l4 (gfc_array_l4 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ any_l4 (gfc_array_l4 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_LOGICAL_4 result;
@@ -207,7 +212,7 @@ any_l4 (gfc_array_l4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index 3ea80dd3e315562cf04e6ee5b25b0699e4c369b1..55ff7a601b0d193f834a9c0c73dba570cf8e3279 100644 (file)
@@ -57,6 +57,7 @@ any_l8 (gfc_array_l8 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ any_l8 (gfc_array_l8 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ any_l8 (gfc_array_l8 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_LOGICAL_8 result;
@@ -207,7 +212,7 @@ any_l8 (gfc_array_l8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index 654c5495dec4f32e8c2f1d10c9039d5322b22370..638fb179e2517d4efcf9f8cc64293791b2868032 100644 (file)
@@ -57,6 +57,7 @@ count_16_l (gfc_array_i16 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ count_16_l (gfc_array_i16 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ count_16_l (gfc_array_i16 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_INTEGER_16 result;
@@ -203,7 +208,7 @@ count_16_l (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index ab2d0eac21adb2bb2f10ca5d67a928c29b9d7872..52ae34baa5f39c430932ce7b1797365ca1736c86 100644 (file)
@@ -57,6 +57,7 @@ count_1_l (gfc_array_i1 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ count_1_l (gfc_array_i1 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ count_1_l (gfc_array_i1 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_INTEGER_1 result;
@@ -203,7 +208,7 @@ count_1_l (gfc_array_i1 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index bb29d4f3c4f5688f77d14e1cb496c365df639d8c..ddede7160f587d2d35b58d2b6faecbbf0ea93c02 100644 (file)
@@ -57,6 +57,7 @@ count_2_l (gfc_array_i2 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ count_2_l (gfc_array_i2 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ count_2_l (gfc_array_i2 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_INTEGER_2 result;
@@ -203,7 +208,7 @@ count_2_l (gfc_array_i2 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index 82926bd522eabdccace3f1559f7951ccd6f5b4a8..6bdc9ca18bf2273f3da8774a31212c665d1726d0 100644 (file)
@@ -57,6 +57,7 @@ count_4_l (gfc_array_i4 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ count_4_l (gfc_array_i4 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ count_4_l (gfc_array_i4 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_INTEGER_4 result;
@@ -203,7 +208,7 @@ count_4_l (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index 9cb094f81cd0447ffa643c53e316f2bffc85d6a7..3c1c565361089ba55a97a7a9c19f09f240e7ee9a 100644 (file)
@@ -57,6 +57,7 @@ count_8_l (gfc_array_i8 * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -65,6 +66,9 @@ count_8_l (gfc_array_i8 * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -164,7 +168,8 @@ count_8_l (gfc_array_i8 * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       GFC_INTEGER_8 result;
@@ -203,7 +208,7 @@ count_8_l (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else
index 6e4153c3eb99ce2d71cae5313f230f1a9b334174..7cccedae55b76d14bf7823e3e613195307a3dcdc 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_1 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ maxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index b4fd55d635022661753d946911141ce09ffb4de6..d7126afbcce0e9da2133a23a5d28dcd29081f070 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_16 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ maxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 483b90372eee4fb06f81c5f11d2f93dbafc2caa9..278ef5b5eb930ce398613c2ca575eee20634016d 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_2 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ maxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 69d35d75556d90520050bc4d047686eef7440b51..4e2e73114d3edcdcc846d4a649abf909a72ca5ae 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_4 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ maxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 54d016c2d514df60862899da11554a9c408d3186..1a9eb519adbd1ff4bf3ee082bdf2fd06d504a380 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_8 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ maxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 10ea86849e5cc84a2bdfdc5c590d6455ce0bf502..79805f5519b1efef09f3e936622bf1dad601a70c 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_10 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ maxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 54b2aeb90eb317f0899f7b77baa551606de995f7..49b27c3422743ce766558ca20133e4e1942aa87e 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_16 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ maxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index f9712e6082ae3c800909f37e8c3aa7faa500caea..cb4cc17f78c576e8502ec07d19da5e9cd51ea0d2 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_4 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ maxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 1e836288439494757943b0e5cfcf4b76f84a2386..bddedbe63fa93dc15a6b238c17c81311e0886911 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_8 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ maxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 271ef38e3f234cba1515c16c84893a259ac845d4..3a1ae07de92ced90ed69cc375147469dd69f2115 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_1 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ maxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 627e36030c451ab30646c4b79665c375ba75df06..d9e1b3e527fad51f03b9105502437d6f9d10df38 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_16 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ maxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index cf42ddfc7082193864d827a2c2197db197caad5c..dedb28b8dc07df9f6ad1ffb2f9560f31c335185b 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_2 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ maxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index a26180f4e7f435124a6b528afd22d11a0faa04f0..12bad843e9202f921f45913ddce789b18ea3cec2 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_4 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ maxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 40f2c36a93d9145ecad65f4aeeda9b4f4c166547..2215521cb1b6729dda4cb62f605994cfdbce8b3a 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_8 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ maxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 75497022d7604ec7a400356c3f3a40be179522bd..0ed1df2fde03d759fe8be548db8855377e40e127 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_10 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ maxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 3ed0d96671e413ed306998e26f3bfbf942499420..ae1a4f16fabbab49c1c074455f6b1e8d6bd8ddf3 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_16 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ maxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 24ecf9a40e66c947b2a7788c402e3796acad66d7..6b1656424cd76442606649844d0820c72228b85d 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_4 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ maxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 9a695da2b2980f7c80bfdc7bd54b7332376cf5c1..bbc6f9e54e5df89ed387c306faf47a998cdb8d58 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_8 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ maxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 489ed11a8fcd78bd84142e3080cd3ea7adf260b9..85c44f9d0dcdb5c2fedb33f7bf0c0fb9a0c73030 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_1 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ maxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 9f8c7ad01ffee01ddbd6c5329b39779454a2b121..18d1ad1d2f20b510db3a408d8549811e4b5ddeb7 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_16 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ maxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 28e0163919898bd33d0c14bc342b5921b9158053..121cc0fe8cb7ecfe1462927c1ccf9cef2c130efb 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_2 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ maxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 82038dc474574e1efa95441afdb00e12fae342b6..8386a29979e9bc26278f5cb8fdad3dc93c7663d1 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_4 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ maxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index c7301eab6c12fd30778a307f7b66cace3c0ded34..ed71c49250218b9fc504f326f695398f2eec990d 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_8 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ maxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index d83600d60199240966c74fb0d3aaef8f57e057c4..a7b71bc54f3be2a26f37f661ee4a744c2a85c164 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_10 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ maxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 6d45297df7727929309885aac1dff4c64dda6709..9fd0b46dbda2efe24fa05d6b3e67e694a2465d15 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_16 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ maxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 470d73c1ea3ed30d27531679e5f83b42a3bc3375..79f1103dc8f0ca930643727c8bff7fa6a295c056 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_4 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ maxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 7003594e00cbef30926282a34162fbaaa575954f..b0ab7608b41fa932b600d8b66727bd09e675a936 100644 (file)
@@ -57,12 +57,15 @@ maxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ maxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_8 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ maxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 9468e4aad4a8ebe898c2f39135bc02ad91228613..a7288eb827b4a9cc5cfb54c3548d71039b9b575f 100644 (file)
@@ -56,12 +56,15 @@ maxval_i1 (gfc_array_i1 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ maxval_i1 (gfc_array_i1 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_1 * restrict src;
       GFC_INTEGER_1 result;
@@ -187,8 +191,8 @@ maxval_i1 (gfc_array_i1 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index de2cac8c11300a7bf252c64bb33e8229995401e1..d50ab6f3558a7d0df411323215f1c1fb954739c3 100644 (file)
@@ -56,12 +56,15 @@ maxval_i16 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ maxval_i16 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_16 * restrict src;
       GFC_INTEGER_16 result;
@@ -187,8 +191,8 @@ maxval_i16 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 818fc29e8896cfa3d66b7f0bf34a1bd382ec797a..c49b18120431cba00e95fe7291f81076e546dffd 100644 (file)
@@ -56,12 +56,15 @@ maxval_i2 (gfc_array_i2 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ maxval_i2 (gfc_array_i2 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_2 * restrict src;
       GFC_INTEGER_2 result;
@@ -187,8 +191,8 @@ maxval_i2 (gfc_array_i2 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index e5289f1e1d8272eb0e0ea59bac7e0f604c365b65..354c86d9a1ed4ed06ae7bd9c66214500799924f8 100644 (file)
@@ -56,12 +56,15 @@ maxval_i4 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ maxval_i4 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_4 * restrict src;
       GFC_INTEGER_4 result;
@@ -187,8 +191,8 @@ maxval_i4 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index d05737d66f1e1a6714fb296bbddb1a3425ee6327..91a2b00c619f9f38135b3a7c8113995e76d297ba 100644 (file)
@@ -56,12 +56,15 @@ maxval_i8 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ maxval_i8 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_8 * restrict src;
       GFC_INTEGER_8 result;
@@ -187,8 +191,8 @@ maxval_i8 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 921ad487d4748b8136d0fe33de72ab2f2c910c93..c959a8083a6aac076b5268fcd2057f9a617142eb 100644 (file)
@@ -56,12 +56,15 @@ maxval_r10 (gfc_array_r10 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ maxval_r10 (gfc_array_r10 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_10 * restrict src;
       GFC_REAL_10 result;
@@ -187,8 +191,8 @@ maxval_r10 (gfc_array_r10 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 15bdd7e215a37ae7f5e26cb2d946cce2ac4e5883..a05808d2e5c55a45930e4d0c417a60ac8d356969 100644 (file)
@@ -56,12 +56,15 @@ maxval_r16 (gfc_array_r16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ maxval_r16 (gfc_array_r16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_16 * restrict src;
       GFC_REAL_16 result;
@@ -187,8 +191,8 @@ maxval_r16 (gfc_array_r16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index f3470e8b951c7148a3857766a5dd7b38c4a2b3dc..a00468bc84576663496dd80cbfd74d3ae51b6fe3 100644 (file)
@@ -56,12 +56,15 @@ maxval_r4 (gfc_array_r4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ maxval_r4 (gfc_array_r4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_4 * restrict src;
       GFC_REAL_4 result;
@@ -187,8 +191,8 @@ maxval_r4 (gfc_array_r4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index b5d7f3c0d521c3a6a4ceb1ff5192ec2342fec9d6..1c9e41df6d09fc67878bbb41b1249937a2ba4289 100644 (file)
@@ -56,12 +56,15 @@ maxval_r8 (gfc_array_r8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ maxval_r8 (gfc_array_r8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_8 * restrict src;
       GFC_REAL_8 result;
@@ -187,8 +191,8 @@ maxval_r8 (gfc_array_r8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 8a20d7b453c5996f100f12a8f1b5b1ac7846c4ae..f95aa9068979286827de302ce5774e982a4ff10a 100644 (file)
@@ -57,12 +57,15 @@ minloc1_16_i1 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_16_i1 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_1 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ minloc1_16_i1 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index f0c5b84384afdb268b2248e36fd54f4ab703ac6e..9a5da308ede93c2b5d897d6f8f5820a9ac558d42 100644 (file)
@@ -57,12 +57,15 @@ minloc1_16_i16 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_16_i16 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_16 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ minloc1_16_i16 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 234f364880abecffb2145f9d3606410f0d7bc1b4..ad282f9b774ac00d1123079881516b22bbb18c89 100644 (file)
@@ -57,12 +57,15 @@ minloc1_16_i2 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_16_i2 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_2 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ minloc1_16_i2 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 2b55cff40b861747046c43325ce51b5e2d0a4e59..7eb382d89eedfd6c20f7be93a41ac62b4bd8bd54 100644 (file)
@@ -57,12 +57,15 @@ minloc1_16_i4 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_16_i4 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_4 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ minloc1_16_i4 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 2e2e89407c0177829fcdaad94e88a5f4924371c8..7995d26101cef45b9e6eafb507431c02ac03b3c2 100644 (file)
@@ -57,12 +57,15 @@ minloc1_16_i8 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_16_i8 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_8 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ minloc1_16_i8 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index dcf291f64537784705498f50ef83db1d12e1f0e3..c7da9d1b5dc0d17e9851b10d4b3f246e9c8c8884 100644 (file)
@@ -57,12 +57,15 @@ minloc1_16_r10 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_16_r10 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_10 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ minloc1_16_r10 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index eb496134df7ea0162eaa15f1e3d42df4c30b9516..c24cb81dca5f97a9e5451658a49337fa786aad71 100644 (file)
@@ -57,12 +57,15 @@ minloc1_16_r16 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_16_r16 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_16 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ minloc1_16_r16 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index dd39b5dd02ce99bdca4fb73a5e0780fb6158bf5a..37cda9b2c1cb0be1c816deadc90188fb7133a8e7 100644 (file)
@@ -57,12 +57,15 @@ minloc1_16_r4 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_16_r4 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_4 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ minloc1_16_r4 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index e31410f0cecedb2f68d8c9f9711303ffc6c34926..b0bbf82d313aafafc014a2948a9be099aae18204 100644 (file)
@@ -57,12 +57,15 @@ minloc1_16_r8 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_16_r8 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_8 * restrict src;
       GFC_INTEGER_16 result;
@@ -193,8 +197,8 @@ minloc1_16_r8 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 5111c7d6f46045cbba9ca6a1bd9101ba19488f40..eab1b40109df2147fc797c6790df0e3105f7d15c 100644 (file)
@@ -57,12 +57,15 @@ minloc1_4_i1 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_4_i1 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_1 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ minloc1_4_i1 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index db898320157db48b82f0f9c86b72748f963a219c..3446e4e825db271110ee5d6074ada2fdfed4340b 100644 (file)
@@ -57,12 +57,15 @@ minloc1_4_i16 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_4_i16 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_16 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ minloc1_4_i16 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 3e1448dc50f265fce6c6f98ebdbcc372d03976ce..1e2a8c6652db9f581181b665387917a08d20f65d 100644 (file)
@@ -57,12 +57,15 @@ minloc1_4_i2 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_4_i2 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_2 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ minloc1_4_i2 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index b66c23edfc1ecb4c5e180f6b5781fade3aa59002..6e4b137f183b0e4c9fd96ddd08b5bba45e7306ec 100644 (file)
@@ -57,12 +57,15 @@ minloc1_4_i4 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_4_i4 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_4 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ minloc1_4_i4 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 1eb3c4cbcf01f8aba7244cc75d21dcaec8fcfae5..5295a1050c7c50ccb53c09739658d22568ebf465 100644 (file)
@@ -57,12 +57,15 @@ minloc1_4_i8 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_4_i8 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_8 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ minloc1_4_i8 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index a224fd3ef0576949198367e78944aea076887ea6..a020a9908a6c84ccbcd3c4eddce40af777ff5724 100644 (file)
@@ -57,12 +57,15 @@ minloc1_4_r10 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_4_r10 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_10 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ minloc1_4_r10 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 404be416cff7059fb8ffdb70ac4815f28c02d945..19bf03c3b75b8db99c04a796ece8c0a5bd814f3c 100644 (file)
@@ -57,12 +57,15 @@ minloc1_4_r16 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_4_r16 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_16 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ minloc1_4_r16 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 4d9844ce633bde22b425ad9d662ebe9f0bbfd84c..ba54897ba39119cdf432ac0c786e700e7df406e1 100644 (file)
@@ -57,12 +57,15 @@ minloc1_4_r4 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_4_r4 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_4 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ minloc1_4_r4 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index fc9b0aea239d286bbf1e19fe0423042502f38e47..07fb27a66065dfbd84d458187111b5263013a186 100644 (file)
@@ -57,12 +57,15 @@ minloc1_4_r8 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_4_r8 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_8 * restrict src;
       GFC_INTEGER_4 result;
@@ -193,8 +197,8 @@ minloc1_4_r8 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index b0fbe0d946ec48ffe34b8c7234424564b9d04603..409a961a78661fc1d2f95c3331c624567fa3a528 100644 (file)
@@ -57,12 +57,15 @@ minloc1_8_i1 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_8_i1 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_1 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ minloc1_8_i1 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 4c4a76c75de0fd5de7590aa15225200672681810..47fc6665dec1a0f93b56b844494f3163e89dc9c4 100644 (file)
@@ -57,12 +57,15 @@ minloc1_8_i16 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_8_i16 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_16 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ minloc1_8_i16 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index f18cd2aea79db8fac6d9ae728b5abb7e920de7bb..22080173f897aa8eee683321c7b42845a1c55175 100644 (file)
@@ -57,12 +57,15 @@ minloc1_8_i2 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_8_i2 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_2 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ minloc1_8_i2 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 758249e063151aab1b161e8b965a71f446f8f413..71df4e662e38989974cb76ce71b3a2707c654f61 100644 (file)
@@ -57,12 +57,15 @@ minloc1_8_i4 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_8_i4 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_4 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ minloc1_8_i4 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 245522e579dc0063491ebb264d3694012e7c0963..d4e471a62bbb74f804868596cbde3ee33b16c571 100644 (file)
@@ -57,12 +57,15 @@ minloc1_8_i8 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_8_i8 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_8 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ minloc1_8_i8 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index ae8035ee0619c86e747415e62ab023a3523d7d6e..61632394d6cb51edd974a455c597f9d3ab113b2a 100644 (file)
@@ -57,12 +57,15 @@ minloc1_8_r10 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_8_r10 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_10 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ minloc1_8_r10 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index af4e2ea41b22d86af33170d2498220d261009940..3e0416adb527cfa437345afe5aa5293ef00eca00 100644 (file)
@@ -57,12 +57,15 @@ minloc1_8_r16 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_8_r16 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_16 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ minloc1_8_r16 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 3f2b2e1dd4e7dc512eaf8c479d0c0361c69bc4fe..c6a6ad4bc555c79fda9e43bdb4517993d5db26dd 100644 (file)
@@ -57,12 +57,15 @@ minloc1_8_r4 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_8_r4 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_4 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ minloc1_8_r4 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 5e00272ec9bfcd05c1d5ef16bcf1df929df56fd1..8a01e3edf26a0d7e0ecd1d9cef7659be066c4667 100644 (file)
@@ -57,12 +57,15 @@ minloc1_8_r8 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -149,7 +152,8 @@ minloc1_8_r8 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_8 * restrict src;
       GFC_INTEGER_8 result;
@@ -193,8 +197,8 @@ minloc1_8_r8 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 3815d44f8df08584604f8344250163553059407b..719a0497c6c0540ca4a9d3420e9069af08fed0a9 100644 (file)
@@ -56,12 +56,15 @@ minval_i1 (gfc_array_i1 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ minval_i1 (gfc_array_i1 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_1 * restrict src;
       GFC_INTEGER_1 result;
@@ -187,8 +191,8 @@ minval_i1 (gfc_array_i1 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index b8b99d33529f2a23327902d6ead7cc07ee058f91..c4f699b01b11dca653f12b04492a7d9fe595d8dc 100644 (file)
@@ -56,12 +56,15 @@ minval_i16 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ minval_i16 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_16 * restrict src;
       GFC_INTEGER_16 result;
@@ -187,8 +191,8 @@ minval_i16 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 1e83efd024ca5680b2e7010718b511c7fe7298b2..2ff292fe9b14d4b778d62739c78024658dba5611 100644 (file)
@@ -56,12 +56,15 @@ minval_i2 (gfc_array_i2 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ minval_i2 (gfc_array_i2 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_2 * restrict src;
       GFC_INTEGER_2 result;
@@ -187,8 +191,8 @@ minval_i2 (gfc_array_i2 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index a40fc2cfd77d03aa6bc660cd6d1bcecbccd5b155..96bfe32bde6c6cc46c777271b9a08473b0828a98 100644 (file)
@@ -56,12 +56,15 @@ minval_i4 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ minval_i4 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_4 * restrict src;
       GFC_INTEGER_4 result;
@@ -187,8 +191,8 @@ minval_i4 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index af37f4369af0b0a9945c41686c2149338f128599..1682dd2fa394057ebc18651a6cfd65b04fb9b243 100644 (file)
@@ -56,12 +56,15 @@ minval_i8 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ minval_i8 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_8 * restrict src;
       GFC_INTEGER_8 result;
@@ -187,8 +191,8 @@ minval_i8 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 829c630037bfa90e6aa01bb448a9cf6c41b44f69..fa9e6366e3806adc25e394f4a153cea3ae6da70f 100644 (file)
@@ -56,12 +56,15 @@ minval_r10 (gfc_array_r10 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ minval_r10 (gfc_array_r10 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_10 * restrict src;
       GFC_REAL_10 result;
@@ -187,8 +191,8 @@ minval_r10 (gfc_array_r10 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index c3797c7f537bb274352829477b253ed1b3218821..9561caa94da90487305b7666307536f5ac1706d5 100644 (file)
@@ -56,12 +56,15 @@ minval_r16 (gfc_array_r16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ minval_r16 (gfc_array_r16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_16 * restrict src;
       GFC_REAL_16 result;
@@ -187,8 +191,8 @@ minval_r16 (gfc_array_r16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index c8c8fd518090f80ce110ecaf90fbd2d04160561c..ac048eedb064c327642b3b3eeb60f37ce7df7a72 100644 (file)
@@ -56,12 +56,15 @@ minval_r4 (gfc_array_r4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ minval_r4 (gfc_array_r4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_4 * restrict src;
       GFC_REAL_4 result;
@@ -187,8 +191,8 @@ minval_r4 (gfc_array_r4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index e404b170b915d606c90f9ace10cf6775440e8965..21ecb3c5afba2c32126834377c798f764ba7a989 100644 (file)
@@ -56,12 +56,15 @@ minval_r8 (gfc_array_r8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ minval_r8 (gfc_array_r8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_8 * restrict src;
       GFC_REAL_8 result;
@@ -187,8 +191,8 @@ minval_r8 (gfc_array_r8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 0366544a205fd7e67df11346c9d91455491bff1e..66a9c05dec73e3b37364096a7eb47614d2660ade 100644 (file)
@@ -56,12 +56,15 @@ product_c10 (gfc_array_c10 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_c10 (gfc_array_c10 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_COMPLEX_10 * restrict src;
       GFC_COMPLEX_10 result;
@@ -186,8 +190,8 @@ product_c10 (gfc_array_c10 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index c4612cf2059d8d1186a83c7d5c114b17c8b6050b..ec2acb4e4f97ec5d2e80f036eabc1965be624237 100644 (file)
@@ -56,12 +56,15 @@ product_c16 (gfc_array_c16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_c16 (gfc_array_c16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_COMPLEX_16 * restrict src;
       GFC_COMPLEX_16 result;
@@ -186,8 +190,8 @@ product_c16 (gfc_array_c16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 53c7f80b269c19711fbaacda5761aad4069a08c8..bd52eb9ab77142798ac2039eba81aab9cd12ddfb 100644 (file)
@@ -56,12 +56,15 @@ product_c4 (gfc_array_c4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_c4 (gfc_array_c4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_COMPLEX_4 * restrict src;
       GFC_COMPLEX_4 result;
@@ -186,8 +190,8 @@ product_c4 (gfc_array_c4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 812fb3ba38e65990cde43d1d87c603eab9ec991a..c124355c1b2b62a7fd0bc9bf45a7df4f2c800030 100644 (file)
@@ -56,12 +56,15 @@ product_c8 (gfc_array_c8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_c8 (gfc_array_c8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_COMPLEX_8 * restrict src;
       GFC_COMPLEX_8 result;
@@ -186,8 +190,8 @@ product_c8 (gfc_array_c8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 72b894f89c41370416e3db898afbae7ee701f7a5..362a08ac6a1d9b3804242d41291858dfdd824705 100644 (file)
@@ -56,12 +56,15 @@ product_i1 (gfc_array_i1 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_i1 (gfc_array_i1 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_1 * restrict src;
       GFC_INTEGER_1 result;
@@ -186,8 +190,8 @@ product_i1 (gfc_array_i1 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index e04293179a84c8f7f0afdbca03ec1e251a9f077e..a687c3a218e0fa147b34349d62ef566b459df6e6 100644 (file)
@@ -56,12 +56,15 @@ product_i16 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_i16 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_16 * restrict src;
       GFC_INTEGER_16 result;
@@ -186,8 +190,8 @@ product_i16 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index af3da57cf979652efaef7ba4d252d417b8300daf..f8082b4c7bbf6b10cb6baa052f53027b2ac8f7da 100644 (file)
@@ -56,12 +56,15 @@ product_i2 (gfc_array_i2 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_i2 (gfc_array_i2 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_2 * restrict src;
       GFC_INTEGER_2 result;
@@ -186,8 +190,8 @@ product_i2 (gfc_array_i2 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 75028e57980a249e2325511ca590921ed7775ae7..11132d4e2bb61771496888ce004d9f93c5a24d18 100644 (file)
@@ -56,12 +56,15 @@ product_i4 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_i4 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_4 * restrict src;
       GFC_INTEGER_4 result;
@@ -186,8 +190,8 @@ product_i4 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 1fc446cf2a0db968f1cdef3ec68c3ecd145342aa..da28568f39e6ef06c28abd92fe63973463fcb991 100644 (file)
@@ -56,12 +56,15 @@ product_i8 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_i8 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_8 * restrict src;
       GFC_INTEGER_8 result;
@@ -186,8 +190,8 @@ product_i8 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 7956b30958d7534879e39638fcc482304fe72cdc..fb0074e222690e9e9f9e79820cdc3829b9dc6d09 100644 (file)
@@ -56,12 +56,15 @@ product_r10 (gfc_array_r10 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_r10 (gfc_array_r10 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_10 * restrict src;
       GFC_REAL_10 result;
@@ -186,8 +190,8 @@ product_r10 (gfc_array_r10 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 9cfd8df0213aa300a4834921b5f03249757f96c2..2375cbefef5b8031d1a529cae3959ec074dd2d37 100644 (file)
@@ -56,12 +56,15 @@ product_r16 (gfc_array_r16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_r16 (gfc_array_r16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_16 * restrict src;
       GFC_REAL_16 result;
@@ -186,8 +190,8 @@ product_r16 (gfc_array_r16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 276d91ae3fdee03adc72ed4b71c70a47f873d3a6..1a3aacc3b79182456c1587acb8c801a4f3b7f069 100644 (file)
@@ -56,12 +56,15 @@ product_r4 (gfc_array_r4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_r4 (gfc_array_r4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_4 * restrict src;
       GFC_REAL_4 result;
@@ -186,8 +190,8 @@ product_r4 (gfc_array_r4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 2c07381736a8e0051c367585b6aa2d33a072803f..76cb1bedbbf341e860a1a532b920a1bd804747ff 100644 (file)
@@ -56,12 +56,15 @@ product_r8 (gfc_array_r8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ product_r8 (gfc_array_r8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_8 * restrict src;
       GFC_REAL_8 result;
@@ -186,8 +190,8 @@ product_r8 (gfc_array_r8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 6c2228917533c5b88cca5c60779f7a58e49a7a10..0c53b6c5880320aafa6cbaaaa3d8d1b2a2923a64 100644 (file)
@@ -56,12 +56,15 @@ sum_c10 (gfc_array_c10 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_c10 (gfc_array_c10 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_COMPLEX_10 * restrict src;
       GFC_COMPLEX_10 result;
@@ -186,8 +190,8 @@ sum_c10 (gfc_array_c10 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 203c483619ae65ce733d3eb7ef8fdd8816113bf5..a3db7aa7d2aab58c2c898be5349aa97e93d87886 100644 (file)
@@ -56,12 +56,15 @@ sum_c16 (gfc_array_c16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_c16 (gfc_array_c16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_COMPLEX_16 * restrict src;
       GFC_COMPLEX_16 result;
@@ -186,8 +190,8 @@ sum_c16 (gfc_array_c16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 4a91bb2631a682253dfd81538b44f8790180d735..849ab8a21bab15c42d9ade4c961009cab147c389 100644 (file)
@@ -56,12 +56,15 @@ sum_c4 (gfc_array_c4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_c4 (gfc_array_c4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_COMPLEX_4 * restrict src;
       GFC_COMPLEX_4 result;
@@ -186,8 +190,8 @@ sum_c4 (gfc_array_c4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index f877d09413535cfc9507df23435a1d9fb539727c..dcdcadfcda9644ba41123c91d0e4c9a6d171d0da 100644 (file)
@@ -56,12 +56,15 @@ sum_c8 (gfc_array_c8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_c8 (gfc_array_c8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_COMPLEX_8 * restrict src;
       GFC_COMPLEX_8 result;
@@ -186,8 +190,8 @@ sum_c8 (gfc_array_c8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index de46086a775631ac40c05e27bac0111119e7f51b..7b396818b53d92e547452b5cda558a5efeb6cc70 100644 (file)
@@ -56,12 +56,15 @@ sum_i1 (gfc_array_i1 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_i1 (gfc_array_i1 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_1 * restrict src;
       GFC_INTEGER_1 result;
@@ -186,8 +190,8 @@ sum_i1 (gfc_array_i1 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index b7fc6e1a1704b9db0535933edc7d4fcbf5a0e678..e99da269b81ceebc20e2dbb30c03c1152bac410e 100644 (file)
@@ -56,12 +56,15 @@ sum_i16 (gfc_array_i16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_i16 (gfc_array_i16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_16 * restrict src;
       GFC_INTEGER_16 result;
@@ -186,8 +190,8 @@ sum_i16 (gfc_array_i16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index f7b85d7b6c8d35837b1a2f8d5fafb5eddeac8839..8a61191a8f99a4f4c539fe0bb28ae0a3e8be5ad9 100644 (file)
@@ -56,12 +56,15 @@ sum_i2 (gfc_array_i2 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_i2 (gfc_array_i2 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_2 * restrict src;
       GFC_INTEGER_2 result;
@@ -186,8 +190,8 @@ sum_i2 (gfc_array_i2 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 04849b5bcf18ab286af82968c5fa0c389ea486e3..f7912ff7aa44029fcf138f553abce6d925cdaafb 100644 (file)
@@ -56,12 +56,15 @@ sum_i4 (gfc_array_i4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_i4 (gfc_array_i4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_4 * restrict src;
       GFC_INTEGER_4 result;
@@ -186,8 +190,8 @@ sum_i4 (gfc_array_i4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index bf65615376b65c45c9552cd437eac9f63eb49b7d..a8ad4a5a9af70723ff911b3534d208f9c138aeef 100644 (file)
@@ -56,12 +56,15 @@ sum_i8 (gfc_array_i8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_i8 (gfc_array_i8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_INTEGER_8 * restrict src;
       GFC_INTEGER_8 result;
@@ -186,8 +190,8 @@ sum_i8 (gfc_array_i8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index deefd30870a69f6941733c7d296ae299b39053e9..f96c72cc70b9aa47647ff35572bbb7c09016b41a 100644 (file)
@@ -56,12 +56,15 @@ sum_r10 (gfc_array_r10 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_r10 (gfc_array_r10 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_10 * restrict src;
       GFC_REAL_10 result;
@@ -186,8 +190,8 @@ sum_r10 (gfc_array_r10 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index ee365f74d15c8274fa039d750da53229aad81f4f..dd8bdcf4dc01d8ed821828253df5a3b47cd43473 100644 (file)
@@ -56,12 +56,15 @@ sum_r16 (gfc_array_r16 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_r16 (gfc_array_r16 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_16 * restrict src;
       GFC_REAL_16 result;
@@ -186,8 +190,8 @@ sum_r16 (gfc_array_r16 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 07f43397b7be57ca210b69b50e73fff8bf3d97bf..3a39c27f88ee84535b075aa3768a7df2aba696e9 100644 (file)
@@ -56,12 +56,15 @@ sum_r4 (gfc_array_r4 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_r4 (gfc_array_r4 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_4 * restrict src;
       GFC_REAL_4 result;
@@ -186,8 +190,8 @@ sum_r4 (gfc_array_r4 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index f83c683347dd1b99b05ee4aecb1971ab47406bd8..858174ab43071807aca61adb269f7cf02cb03bcd 100644 (file)
@@ -56,12 +56,15 @@ sum_r8 (gfc_array_r8 * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -148,7 +151,8 @@ sum_r8 (gfc_array_r8 * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_REAL_8 * restrict src;
       GFC_REAL_8 result;
@@ -186,8 +190,8 @@ sum_r8 (gfc_array_r8 * const restrict retarray,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 5ab2952a49127baee4c7480363702e46854681be..edf3c77d05cb237b47b962b4b3f34791aba73f6d 100644 (file)
@@ -39,12 +39,15 @@ name`'rtype_qual`_'atype_code (rtype * const restrict retarray,
   index_type len;
   index_type delta;
   index_type dim;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
   rank = GFC_DESCRIPTOR_RANK (array) - 1;
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
   delta = array->dim[dim].stride;
 
   for (n = 0; n < dim; n++)
@@ -131,7 +134,8 @@ name`'rtype_qual`_'atype_code (rtype * const restrict retarray,
   base = array->data;
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const atype_name * restrict src;
       rtype_name result;
@@ -169,8 +173,8 @@ define(FINISH_ARRAY_FUNCTION,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
-              break;
+             continue_loop = 0;
+             break;
             }
           else
             {
index 8666870c88e0c5c80cae35047f1dda3f4a27fcde..a31d73a17b93a43a7be91ea4ee97d327ecdc41cd 100644 (file)
@@ -40,6 +40,7 @@ name`'rtype_qual`_'atype_code (rtype * const restrict retarray,
   index_type delta;
   index_type dim;
   int src_kind;
+  int continue_loop;
 
   /* Make dim zero based to avoid confusion.  */
   dim = (*pdim) - 1;
@@ -48,6 +49,9 @@ name`'rtype_qual`_'atype_code (rtype * const restrict retarray,
   src_kind = GFC_DESCRIPTOR_SIZE (array);
 
   len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
+  if (len < 0)
+    len = 0;
+
   delta = array->dim[dim].stride * src_kind;
 
   for (n = 0; n < dim; n++)
@@ -147,7 +151,8 @@ name`'rtype_qual`_'atype_code (rtype * const restrict retarray,
 
   dest = retarray->data;
 
-  while (base)
+  continue_loop = 1;
+  while (continue_loop)
     {
       const GFC_LOGICAL_1 * restrict src;
       rtype_name result;
@@ -185,7 +190,7 @@ define(FINISH_ARRAY_FUNCTION,
           if (n == rank)
             {
               /* Break out of the look.  */
-              base = NULL;
+              continue_loop = 0;
               break;
             }
           else