PR libfortran/19106
* m4/iforeach.c (name`'rtype_qual`_'atype_code): Add TODO
that setting correct strides is a front end job.
(`m'name`'rtype_qual`_'atype_code): Likewise. If mask has
a lowest stride of 0, adjust to 1.
* m4/ifunction.c (name`'rtype_qual`_'atype_code): Add TODO
that setting correct strides is a front end job.
(`m'name`'rtype_qual`_'atype_code): Likewise. If mask has
a lowest stride of 0, adjust to 1.
* maxloc0_4_i4.c: Regenerated
* maxloc0_4_i8.c: Regenerated
* maxloc0_4_r4.c: Regenerated
* maxloc0_4_r8.c: Regenerated
* maxloc0_8_i4.c: Regenerated
* maxloc0_8_i8.c: Regenerated
* maxloc0_8_r4.c: Regenerated
* maxloc0_8_r8.c: Regenerated
* maxloc1_4_i4.c: Regenerated
* maxloc1_4_i8.c: Regenerated
* maxloc1_4_r4.c: Regenerated
* maxloc1_4_r8.c: Regenerated
* maxloc1_8_i4.c: Regenerated
* maxloc1_8_i8.c: Regenerated
* maxloc1_8_r4.c: Regenerated
* maxloc1_8_r8.c: Regenerated
* maxval_i4.c: Regenerated
* maxval_i8.c: Regenerated
* maxval_r4.c: Regenerated
* maxval_r8.c: Regenerated
* minloc0_4_i4.c: Regenerated
* minloc0_4_i8.c: Regenerated
* minloc0_4_r4.c: Regenerated
* minloc0_4_r8.c: Regenerated
* minloc0_8_i4.c: Regenerated
* minloc0_8_i8.c: Regenerated
* minloc0_8_r4.c: Regenerated
* minloc0_8_r8.c: Regenerated
* minloc1_4_i4.c: Regenerated
* minloc1_4_i8.c: Regenerated
* minloc1_4_r4.c: Regenerated
* minloc1_4_r8.c: Regenerated
* minloc1_8_i4.c: Regenerated
* minloc1_8_i8.c: Regenerated
* minloc1_8_r4.c: Regenerated
* minloc1_8_r8.c: Regenerated
* minval_i4.c: Regenerated
* minval_i8.c: Regenerated
* minval_r4.c: Regenerated
* minval_r8.c: Regenerated
* product_c4.c: Regenerated
* product_c8.c: Regenerated
* product_i4.c: Regenerated
* product_i8.c: Regenerated
* product_r4.c: Regenerated
* product_r8.c: Regenerated
* sum_c4.c: Regenerated
* sum_c8.c: Regenerated
* sum_i4.c: Regenerated
* sum_i8.c: Regenerated
* sum_r4.c: Regenerated
* sum_r8.c: Regenerated
2005-04-13 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/19016
* gfortran.fortran-torture/execute/intrinsic_mmloc.f90:
Add tests with mask generated by expression.
* gfortran.fortran-torture/execute/intrinsic_mmval.f90: Likewise.
* gfortran.fortran-torture/execute/intrinsic_product.f90: Likewise.
* gfortran.fortran-torture/execute/intrinsic_sum.f90: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98052
138bc75d-0d04-0410-961f-
82ee72b054a4
+2005-04-13 Thomas Koenig <Thomas.Koenig@online.de>
+
+ PR libfortran/19016
+ * gfortran.fortran-torture/execute/intrinsic_mmloc.f90:
+ Add tests with mask generated by expression.
+ * gfortran.fortran-torture/execute/intrinsic_mmval.f90: Likewise.
+ * gfortran.fortran-torture/execute/intrinsic_product.f90: Likewise.
+ * gfortran.fortran-torture/execute/intrinsic_sum.f90: Likewise.
+
2005-04-12 Ulrich Weigand <uweigand@de.ibm.com>
PR middle-end/20917
implicit none
integer, dimension (3, 3) :: a
integer, dimension (3) :: b
- logical, dimension (3, 3) :: m
+ logical, dimension (3, 3) :: m, tr
integer i
character(len=10) line
a = reshape ((/1, 2, 3, 5, 4, 6, 9, 8, 7/), (/3, 3/));
+ tr = .true.
b = minloc (a, 1)
if (b(1) .ne. 1) call abort
if (b(1) .ne. 2) call abort
if (b(2) .ne. 2) call abort
if (b(3) .ne. 3) call abort
+ b = minloc (a, 1, m .and. tr)
+ if (b(1) .ne. 2) call abort
+ if (b(2) .ne. 2) call abort
+ if (b(3) .ne. 3) call abort
b = -1
write (line, 9000) minloc(a, 1, m)
read (line, 9000) b
b(1:2) = minloc(a, mask=m)
if (b(1) .ne. 2) call abort
if (b(2) .ne. 1) call abort
+ b(1:2) = minloc(a, mask=m .and. tr)
+ if (b(1) .ne. 2) call abort
+ if (b(2) .ne. 1) call abort
b = -1
write (line, 9000) minloc(a, mask=m)
read (line, 9000) b
if (b(1) .ne. 3) call abort
if (b(2) .ne. 3) call abort
if (b(3) .ne. 2) call abort
+ b = maxloc (a, 1, m .and. tr)
+ if (b(1) .ne. 3) call abort
+ if (b(2) .ne. 3) call abort
+ if (b(3) .ne. 2) call abort
b = -1
write (line, 9000) maxloc(a, 1, m)
read (line, 9000) b
b(1:2) = maxloc(a, mask=m)
if (b(1) .ne. 2) call abort
if (b(2) .ne. 3) call abort
+ b(1:2) = maxloc(a, mask=m .and. tr)
+ if (b(1) .ne. 2) call abort
+ if (b(2) .ne. 3) call abort
b = -1
write (line, 9000) maxloc(a, mask=m)
read (line, 9000) b
implicit none
integer, dimension (3, 3) :: a
integer, dimension (3) :: b
- logical, dimension (3, 3) :: m
+ logical, dimension (3, 3) :: m, tr
integer i
character (len=9) line
a = reshape ((/1, 2, 3, 5, 4, 6, 9, 8, 7/), (/3, 3/));
+ tr = .true.
+
b = minval (a, 1)
if (any(b .ne. (/1, 4, 7/))) call abort
write (line, 9000) minval (a, 1)
m(1, 2) = .false.
b = minval (a, 1, m)
if (any(b .ne. (/2, 4, 7/))) call abort
+ b = minval (a, 1, m .and. tr)
+ if (any(b .ne. (/2, 4, 7/))) call abort
write (line, 9000) minval(a, 1, m)
if (line .ne. ' 2 4 7') call abort
m(1, 3) = .false.
b = maxval (a, 1, m)
if (any(b .ne. (/3, 6, 8/))) call abort
+ b = maxval (a, 1, m .and. tr)
+ if (any(b .ne. (/3, 6, 8/))) call abort
write (line, 9000) maxval(a, 1, m)
if (line .ne. ' 3 6 8') call abort
implicit none
integer, dimension (3, 3) :: a
integer, dimension (3) :: b
- logical, dimension (3, 3) :: m
+ logical, dimension (3, 3) :: m, tr
character(len=12) line
a = reshape ((/1, 2, 3, 4, 5, 6, 7, 8, 9/), (/3, 3/));
b = product (a, 1)
+ tr = .true.
+
if (any(b .ne. (/6, 120, 504/))) call abort
write (line, 9000) product(a,1)
m = .true.
m(1, 1) = .false.
m(2, 1) = .false.
+
b = product (a, 2, m)
+ if (any(b .ne. (/28, 40, 162/))) call abort
+ b = product (a, 2, m .and. tr)
if (any(b .ne. (/28, 40, 162/))) call abort
write (line, 9000) product(a, 2, m)
if (product (a, mask=m) .ne. 181440) call abort
+ if (product (a, mask=m .and. tr) .ne. 181440) call abort
+
write (line, 9010) product(a, mask=m)
if (line .ne. '181440') call abort
implicit none
integer, dimension (3, 3) :: a
integer, dimension (3) :: b
- logical, dimension (3, 3) :: m
+ logical, dimension (3, 3) :: m, tr
integer i
character(len=9) line
a = reshape ((/1, 2, 3, 4, 5, 6, 7, 8, 9/), (/3, 3/));
+ tr = .true.
+
if (sum(a) .ne. 45) call abort
write (line, 9000) sum(a)
if (line .ne. ' 45 ') call abort
m(2, 1) = .false.
if (sum (a, mask=m) .ne. 42) call abort
+ if (sum (a, mask=m .and. tr) .ne. 42) call abort
write(line, 9000) sum (a, mask=m)
if (line .ne. ' 42 ') call abort
if (b(1) .ne. 11) call abort
if (b(2) .ne. 13) call abort
if (b(3) .ne. 18) call abort
+
+ b = sum (a, 2, m .and. tr)
+ if (b(1) .ne. 11) call abort
+ if (b(2) .ne. 13) call abort
+ if (b(3) .ne. 18) call abort
write (line, 9000) sum (a, 2, m)
if (line .ne. ' 11 13 18') call abort
+2005-04-13 Thomas Koenig <Thomas.Koenig@online.de>
+
+ PR libfortran/19106
+ * m4/iforeach.c (name`'rtype_qual`_'atype_code): Add TODO
+ that setting correct strides is a front end job.
+ (`m'name`'rtype_qual`_'atype_code): Likewise. If mask has
+ a lowest stride of 0, adjust to 1.
+ * m4/ifunction.c (name`'rtype_qual`_'atype_code): Add TODO
+ that setting correct strides is a front end job.
+ (`m'name`'rtype_qual`_'atype_code): Likewise. If mask has
+ a lowest stride of 0, adjust to 1.
+ * maxloc0_4_i4.c: Regenerated
+ * maxloc0_4_i8.c: Regenerated
+ * maxloc0_4_r4.c: Regenerated
+ * maxloc0_4_r8.c: Regenerated
+ * maxloc0_8_i4.c: Regenerated
+ * maxloc0_8_i8.c: Regenerated
+ * maxloc0_8_r4.c: Regenerated
+ * maxloc0_8_r8.c: Regenerated
+ * maxloc1_4_i4.c: Regenerated
+ * maxloc1_4_i8.c: Regenerated
+ * maxloc1_4_r4.c: Regenerated
+ * maxloc1_4_r8.c: Regenerated
+ * maxloc1_8_i4.c: Regenerated
+ * maxloc1_8_i8.c: Regenerated
+ * maxloc1_8_r4.c: Regenerated
+ * maxloc1_8_r8.c: Regenerated
+ * maxval_i4.c: Regenerated
+ * maxval_i8.c: Regenerated
+ * maxval_r4.c: Regenerated
+ * maxval_r8.c: Regenerated
+ * minloc0_4_i4.c: Regenerated
+ * minloc0_4_i8.c: Regenerated
+ * minloc0_4_r4.c: Regenerated
+ * minloc0_4_r8.c: Regenerated
+ * minloc0_8_i4.c: Regenerated
+ * minloc0_8_i8.c: Regenerated
+ * minloc0_8_r4.c: Regenerated
+ * minloc0_8_r8.c: Regenerated
+ * minloc1_4_i4.c: Regenerated
+ * minloc1_4_i8.c: Regenerated
+ * minloc1_4_r4.c: Regenerated
+ * minloc1_4_r8.c: Regenerated
+ * minloc1_8_i4.c: Regenerated
+ * minloc1_8_i8.c: Regenerated
+ * minloc1_8_r4.c: Regenerated
+ * minloc1_8_r8.c: Regenerated
+ * minval_i4.c: Regenerated
+ * minval_i8.c: Regenerated
+ * minval_r4.c: Regenerated
+ * minval_r8.c: Regenerated
+ * product_c4.c: Regenerated
+ * product_c8.c: Regenerated
+ * product_i4.c: Regenerated
+ * product_i8.c: Regenerated
+ * product_r4.c: Regenerated
+ * product_r8.c: Regenerated
+ * sum_c4.c: Regenerated
+ * sum_c8.c: Regenerated
+ * sum_i4.c: Regenerated
+ * sum_i8.c: Regenerated
+ * sum_r4.c: Regenerated
+ * sum_r8.c: Regenerated
+
2005-04-10 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR libfortran/20788
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
{
{
/* Implementation start. */
-
+ printf("mbase = %p, *mbase = %d, *base=%d\n");
if (*mbase && *base < minval)
{
minval = *base;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;
if (retarray->dim[0].stride == 0)
retarray->dim[0].stride = 1;
}
+
+ /* TODO: It should be a front end job to correctly set the strides. */
+
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
retarray->dim[0].stride = 1;
}
+ /* TODO: It should be a front end job to correctly set the strides. */
+
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
dstride = retarray->dim[0].stride;
dest = retarray->data;
for (n = 0; n < rank; n++)
/* Make dim zero based to avoid confusion. */
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
+
+ /* TODO: It should be a front end job to correctly set the strides. */
+
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
dim = (*pdim) - 1;
rank = GFC_DESCRIPTOR_RANK (array) - 1;
+
+ /* TODO: It should be a front end job to correctly set the strides. */
+
if (array->dim[0].stride == 0)
array->dim[0].stride = 1;
+ if (mask->dim[0].stride == 0)
+ mask->dim[0].stride = 1;
+
len = array->dim[dim].ubound + 1 - array->dim[dim].lbound;
if (len <= 0)
return;