From c6abe94dc12e4f7e56b5439a081e0b11c6950d92 Mon Sep 17 00:00:00 2001 From: Thomas Koenig Date: Tue, 12 Apr 2005 22:57:10 +0000 Subject: re PR libfortran/19106 ([4.0 only] segfault in executable for print *,sum(a,dim=2,mask=a>0)) 2005-04-13 Thomas Koenig 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 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. From-SVN: r98052 --- libgfortran/generated/maxloc0_4_i4.c | 3 +++ libgfortran/generated/maxloc0_4_i8.c | 3 +++ libgfortran/generated/maxloc0_4_r4.c | 3 +++ libgfortran/generated/maxloc0_4_r8.c | 3 +++ libgfortran/generated/maxloc0_8_i4.c | 3 +++ libgfortran/generated/maxloc0_8_i8.c | 3 +++ libgfortran/generated/maxloc0_8_r4.c | 3 +++ libgfortran/generated/maxloc0_8_r8.c | 3 +++ libgfortran/generated/maxloc1_4_i4.c | 3 +++ libgfortran/generated/maxloc1_4_i8.c | 3 +++ libgfortran/generated/maxloc1_4_r4.c | 3 +++ libgfortran/generated/maxloc1_4_r8.c | 3 +++ libgfortran/generated/maxloc1_8_i4.c | 3 +++ libgfortran/generated/maxloc1_8_i8.c | 3 +++ libgfortran/generated/maxloc1_8_r4.c | 3 +++ libgfortran/generated/maxloc1_8_r8.c | 3 +++ libgfortran/generated/maxval_i4.c | 3 +++ libgfortran/generated/maxval_i8.c | 3 +++ libgfortran/generated/maxval_r4.c | 3 +++ libgfortran/generated/maxval_r8.c | 3 +++ libgfortran/generated/minloc0_4_i4.c | 5 ++++- libgfortran/generated/minloc0_4_i8.c | 3 +++ libgfortran/generated/minloc0_4_r4.c | 3 +++ libgfortran/generated/minloc0_4_r8.c | 3 +++ libgfortran/generated/minloc0_8_i4.c | 3 +++ libgfortran/generated/minloc0_8_i8.c | 3 +++ libgfortran/generated/minloc0_8_r4.c | 3 +++ libgfortran/generated/minloc0_8_r8.c | 3 +++ libgfortran/generated/minloc1_4_i4.c | 3 +++ libgfortran/generated/minloc1_4_i8.c | 3 +++ libgfortran/generated/minloc1_4_r4.c | 3 +++ libgfortran/generated/minloc1_4_r8.c | 3 +++ libgfortran/generated/minloc1_8_i4.c | 3 +++ libgfortran/generated/minloc1_8_i8.c | 3 +++ libgfortran/generated/minloc1_8_r4.c | 3 +++ libgfortran/generated/minloc1_8_r8.c | 3 +++ libgfortran/generated/minval_i4.c | 3 +++ libgfortran/generated/minval_i8.c | 3 +++ libgfortran/generated/minval_r4.c | 3 +++ libgfortran/generated/minval_r8.c | 3 +++ libgfortran/generated/product_c4.c | 3 +++ libgfortran/generated/product_c8.c | 3 +++ libgfortran/generated/product_i4.c | 3 +++ libgfortran/generated/product_i8.c | 3 +++ libgfortran/generated/product_r4.c | 3 +++ libgfortran/generated/product_r8.c | 3 +++ libgfortran/generated/sum_c4.c | 3 +++ libgfortran/generated/sum_c8.c | 3 +++ libgfortran/generated/sum_i4.c | 3 +++ libgfortran/generated/sum_i8.c | 3 +++ libgfortran/generated/sum_r4.c | 3 +++ libgfortran/generated/sum_r8.c | 3 +++ 52 files changed, 157 insertions(+), 1 deletion(-) (limited to 'libgfortran/generated') diff --git a/libgfortran/generated/maxloc0_4_i4.c b/libgfortran/generated/maxloc0_4_i4.c index a483c43..94e2ec5 100644 --- a/libgfortran/generated/maxloc0_4_i4.c +++ b/libgfortran/generated/maxloc0_4_i4.c @@ -195,6 +195,9 @@ mmaxloc0_4_i4 (gfc_array_i4 * retarray, gfc_array_i4 *array, 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++) diff --git a/libgfortran/generated/maxloc0_4_i8.c b/libgfortran/generated/maxloc0_4_i8.c index ced6d6a..85e0ea5 100644 --- a/libgfortran/generated/maxloc0_4_i8.c +++ b/libgfortran/generated/maxloc0_4_i8.c @@ -195,6 +195,9 @@ mmaxloc0_4_i8 (gfc_array_i4 * retarray, gfc_array_i8 *array, 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++) diff --git a/libgfortran/generated/maxloc0_4_r4.c b/libgfortran/generated/maxloc0_4_r4.c index 06eb04c..14f64e4 100644 --- a/libgfortran/generated/maxloc0_4_r4.c +++ b/libgfortran/generated/maxloc0_4_r4.c @@ -195,6 +195,9 @@ mmaxloc0_4_r4 (gfc_array_i4 * retarray, gfc_array_r4 *array, 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++) diff --git a/libgfortran/generated/maxloc0_4_r8.c b/libgfortran/generated/maxloc0_4_r8.c index 7913218..caa3388 100644 --- a/libgfortran/generated/maxloc0_4_r8.c +++ b/libgfortran/generated/maxloc0_4_r8.c @@ -195,6 +195,9 @@ mmaxloc0_4_r8 (gfc_array_i4 * retarray, gfc_array_r8 *array, 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++) diff --git a/libgfortran/generated/maxloc0_8_i4.c b/libgfortran/generated/maxloc0_8_i4.c index 49d370d..6999ffa 100644 --- a/libgfortran/generated/maxloc0_8_i4.c +++ b/libgfortran/generated/maxloc0_8_i4.c @@ -195,6 +195,9 @@ mmaxloc0_8_i4 (gfc_array_i8 * retarray, gfc_array_i4 *array, 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++) diff --git a/libgfortran/generated/maxloc0_8_i8.c b/libgfortran/generated/maxloc0_8_i8.c index 100c011..614e6df 100644 --- a/libgfortran/generated/maxloc0_8_i8.c +++ b/libgfortran/generated/maxloc0_8_i8.c @@ -195,6 +195,9 @@ mmaxloc0_8_i8 (gfc_array_i8 * retarray, gfc_array_i8 *array, 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++) diff --git a/libgfortran/generated/maxloc0_8_r4.c b/libgfortran/generated/maxloc0_8_r4.c index 4cf8364..b9e1950 100644 --- a/libgfortran/generated/maxloc0_8_r4.c +++ b/libgfortran/generated/maxloc0_8_r4.c @@ -195,6 +195,9 @@ mmaxloc0_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 *array, 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++) diff --git a/libgfortran/generated/maxloc0_8_r8.c b/libgfortran/generated/maxloc0_8_r8.c index 1a0ccee..b7e216b 100644 --- a/libgfortran/generated/maxloc0_8_r8.c +++ b/libgfortran/generated/maxloc0_8_r8.c @@ -195,6 +195,9 @@ mmaxloc0_8_r8 (gfc_array_i8 * retarray, gfc_array_r8 *array, 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++) diff --git a/libgfortran/generated/maxloc1_4_i4.c b/libgfortran/generated/maxloc1_4_i4.c index 38c6836..deeb063 100644 --- a/libgfortran/generated/maxloc1_4_i4.c +++ b/libgfortran/generated/maxloc1_4_i4.c @@ -200,6 +200,9 @@ mmaxloc1_4_i4 (gfc_array_i4 * retarray, gfc_array_i4 * array, 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; diff --git a/libgfortran/generated/maxloc1_4_i8.c b/libgfortran/generated/maxloc1_4_i8.c index 9c6c732..80555e8 100644 --- a/libgfortran/generated/maxloc1_4_i8.c +++ b/libgfortran/generated/maxloc1_4_i8.c @@ -200,6 +200,9 @@ mmaxloc1_4_i8 (gfc_array_i4 * retarray, gfc_array_i8 * array, 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; diff --git a/libgfortran/generated/maxloc1_4_r4.c b/libgfortran/generated/maxloc1_4_r4.c index 4048d2b..55d5229 100644 --- a/libgfortran/generated/maxloc1_4_r4.c +++ b/libgfortran/generated/maxloc1_4_r4.c @@ -200,6 +200,9 @@ mmaxloc1_4_r4 (gfc_array_i4 * retarray, gfc_array_r4 * array, 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; diff --git a/libgfortran/generated/maxloc1_4_r8.c b/libgfortran/generated/maxloc1_4_r8.c index f27a1df..aab24a1 100644 --- a/libgfortran/generated/maxloc1_4_r8.c +++ b/libgfortran/generated/maxloc1_4_r8.c @@ -200,6 +200,9 @@ mmaxloc1_4_r8 (gfc_array_i4 * retarray, gfc_array_r8 * array, 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; diff --git a/libgfortran/generated/maxloc1_8_i4.c b/libgfortran/generated/maxloc1_8_i4.c index 448c9f9..807be63 100644 --- a/libgfortran/generated/maxloc1_8_i4.c +++ b/libgfortran/generated/maxloc1_8_i4.c @@ -200,6 +200,9 @@ mmaxloc1_8_i4 (gfc_array_i8 * retarray, gfc_array_i4 * array, 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; diff --git a/libgfortran/generated/maxloc1_8_i8.c b/libgfortran/generated/maxloc1_8_i8.c index fb91a6a..e86cd08 100644 --- a/libgfortran/generated/maxloc1_8_i8.c +++ b/libgfortran/generated/maxloc1_8_i8.c @@ -200,6 +200,9 @@ mmaxloc1_8_i8 (gfc_array_i8 * retarray, gfc_array_i8 * array, 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; diff --git a/libgfortran/generated/maxloc1_8_r4.c b/libgfortran/generated/maxloc1_8_r4.c index 33159fb..584bfb4 100644 --- a/libgfortran/generated/maxloc1_8_r4.c +++ b/libgfortran/generated/maxloc1_8_r4.c @@ -200,6 +200,9 @@ mmaxloc1_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 * array, 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; diff --git a/libgfortran/generated/maxloc1_8_r8.c b/libgfortran/generated/maxloc1_8_r8.c index b1f7805..60c8c3d 100644 --- a/libgfortran/generated/maxloc1_8_r8.c +++ b/libgfortran/generated/maxloc1_8_r8.c @@ -200,6 +200,9 @@ mmaxloc1_8_r8 (gfc_array_i8 * retarray, gfc_array_r8 * array, 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; diff --git a/libgfortran/generated/maxval_i4.c b/libgfortran/generated/maxval_i4.c index e992327..0bf088f 100644 --- a/libgfortran/generated/maxval_i4.c +++ b/libgfortran/generated/maxval_i4.c @@ -194,6 +194,9 @@ mmaxval_i4 (gfc_array_i4 * retarray, gfc_array_i4 * array, 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; diff --git a/libgfortran/generated/maxval_i8.c b/libgfortran/generated/maxval_i8.c index 3e60377..2acdef9 100644 --- a/libgfortran/generated/maxval_i8.c +++ b/libgfortran/generated/maxval_i8.c @@ -194,6 +194,9 @@ mmaxval_i8 (gfc_array_i8 * retarray, gfc_array_i8 * array, 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; diff --git a/libgfortran/generated/maxval_r4.c b/libgfortran/generated/maxval_r4.c index 8e94efb..46948b9 100644 --- a/libgfortran/generated/maxval_r4.c +++ b/libgfortran/generated/maxval_r4.c @@ -194,6 +194,9 @@ mmaxval_r4 (gfc_array_r4 * retarray, gfc_array_r4 * array, 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; diff --git a/libgfortran/generated/maxval_r8.c b/libgfortran/generated/maxval_r8.c index 40a3575..b7bb89c 100644 --- a/libgfortran/generated/maxval_r8.c +++ b/libgfortran/generated/maxval_r8.c @@ -194,6 +194,9 @@ mmaxval_r8 (gfc_array_r8 * retarray, gfc_array_r8 * array, 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; diff --git a/libgfortran/generated/minloc0_4_i4.c b/libgfortran/generated/minloc0_4_i4.c index 178bf5a..4bb7a5a 100644 --- a/libgfortran/generated/minloc0_4_i4.c +++ b/libgfortran/generated/minloc0_4_i4.c @@ -195,6 +195,9 @@ mminloc0_4_i4 (gfc_array_i4 * retarray, gfc_array_i4 *array, 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++) @@ -238,7 +241,7 @@ mminloc0_4_i4 (gfc_array_i4 * retarray, gfc_array_i4 *array, { { /* Implementation start. */ - + printf("mbase = %p, *mbase = %d, *base=%d\n"); if (*mbase && *base < minval) { minval = *base; diff --git a/libgfortran/generated/minloc0_4_i8.c b/libgfortran/generated/minloc0_4_i8.c index d87a444..9d7a1a4 100644 --- a/libgfortran/generated/minloc0_4_i8.c +++ b/libgfortran/generated/minloc0_4_i8.c @@ -195,6 +195,9 @@ mminloc0_4_i8 (gfc_array_i4 * retarray, gfc_array_i8 *array, 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++) diff --git a/libgfortran/generated/minloc0_4_r4.c b/libgfortran/generated/minloc0_4_r4.c index 21c9edf..3b54a3b 100644 --- a/libgfortran/generated/minloc0_4_r4.c +++ b/libgfortran/generated/minloc0_4_r4.c @@ -195,6 +195,9 @@ mminloc0_4_r4 (gfc_array_i4 * retarray, gfc_array_r4 *array, 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++) diff --git a/libgfortran/generated/minloc0_4_r8.c b/libgfortran/generated/minloc0_4_r8.c index a00d013..9866538 100644 --- a/libgfortran/generated/minloc0_4_r8.c +++ b/libgfortran/generated/minloc0_4_r8.c @@ -195,6 +195,9 @@ mminloc0_4_r8 (gfc_array_i4 * retarray, gfc_array_r8 *array, 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++) diff --git a/libgfortran/generated/minloc0_8_i4.c b/libgfortran/generated/minloc0_8_i4.c index 340c54d8..4440a9b 100644 --- a/libgfortran/generated/minloc0_8_i4.c +++ b/libgfortran/generated/minloc0_8_i4.c @@ -195,6 +195,9 @@ mminloc0_8_i4 (gfc_array_i8 * retarray, gfc_array_i4 *array, 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++) diff --git a/libgfortran/generated/minloc0_8_i8.c b/libgfortran/generated/minloc0_8_i8.c index 5941eb4..f2ee93c 100644 --- a/libgfortran/generated/minloc0_8_i8.c +++ b/libgfortran/generated/minloc0_8_i8.c @@ -195,6 +195,9 @@ mminloc0_8_i8 (gfc_array_i8 * retarray, gfc_array_i8 *array, 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++) diff --git a/libgfortran/generated/minloc0_8_r4.c b/libgfortran/generated/minloc0_8_r4.c index 9900bc9..1f38c912 100644 --- a/libgfortran/generated/minloc0_8_r4.c +++ b/libgfortran/generated/minloc0_8_r4.c @@ -195,6 +195,9 @@ mminloc0_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 *array, 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++) diff --git a/libgfortran/generated/minloc0_8_r8.c b/libgfortran/generated/minloc0_8_r8.c index d1caf2a..773ab48 100644 --- a/libgfortran/generated/minloc0_8_r8.c +++ b/libgfortran/generated/minloc0_8_r8.c @@ -195,6 +195,9 @@ mminloc0_8_r8 (gfc_array_i8 * retarray, gfc_array_r8 *array, 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++) diff --git a/libgfortran/generated/minloc1_4_i4.c b/libgfortran/generated/minloc1_4_i4.c index 76f082b..8c99d83 100644 --- a/libgfortran/generated/minloc1_4_i4.c +++ b/libgfortran/generated/minloc1_4_i4.c @@ -200,6 +200,9 @@ mminloc1_4_i4 (gfc_array_i4 * retarray, gfc_array_i4 * array, 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; diff --git a/libgfortran/generated/minloc1_4_i8.c b/libgfortran/generated/minloc1_4_i8.c index 358b4fa..48596a6 100644 --- a/libgfortran/generated/minloc1_4_i8.c +++ b/libgfortran/generated/minloc1_4_i8.c @@ -200,6 +200,9 @@ mminloc1_4_i8 (gfc_array_i4 * retarray, gfc_array_i8 * array, 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; diff --git a/libgfortran/generated/minloc1_4_r4.c b/libgfortran/generated/minloc1_4_r4.c index b61e6b5..0b9d15c 100644 --- a/libgfortran/generated/minloc1_4_r4.c +++ b/libgfortran/generated/minloc1_4_r4.c @@ -200,6 +200,9 @@ mminloc1_4_r4 (gfc_array_i4 * retarray, gfc_array_r4 * array, 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; diff --git a/libgfortran/generated/minloc1_4_r8.c b/libgfortran/generated/minloc1_4_r8.c index 65c1fac..25d366a 100644 --- a/libgfortran/generated/minloc1_4_r8.c +++ b/libgfortran/generated/minloc1_4_r8.c @@ -200,6 +200,9 @@ mminloc1_4_r8 (gfc_array_i4 * retarray, gfc_array_r8 * array, 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; diff --git a/libgfortran/generated/minloc1_8_i4.c b/libgfortran/generated/minloc1_8_i4.c index a428c91..a57efe6 100644 --- a/libgfortran/generated/minloc1_8_i4.c +++ b/libgfortran/generated/minloc1_8_i4.c @@ -200,6 +200,9 @@ mminloc1_8_i4 (gfc_array_i8 * retarray, gfc_array_i4 * array, 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; diff --git a/libgfortran/generated/minloc1_8_i8.c b/libgfortran/generated/minloc1_8_i8.c index fd7f8d6..5e1603a 100644 --- a/libgfortran/generated/minloc1_8_i8.c +++ b/libgfortran/generated/minloc1_8_i8.c @@ -200,6 +200,9 @@ mminloc1_8_i8 (gfc_array_i8 * retarray, gfc_array_i8 * array, 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; diff --git a/libgfortran/generated/minloc1_8_r4.c b/libgfortran/generated/minloc1_8_r4.c index 0f15fc4..643765a 100644 --- a/libgfortran/generated/minloc1_8_r4.c +++ b/libgfortran/generated/minloc1_8_r4.c @@ -200,6 +200,9 @@ mminloc1_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 * array, 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; diff --git a/libgfortran/generated/minloc1_8_r8.c b/libgfortran/generated/minloc1_8_r8.c index edd9a71..7d2dc41 100644 --- a/libgfortran/generated/minloc1_8_r8.c +++ b/libgfortran/generated/minloc1_8_r8.c @@ -200,6 +200,9 @@ mminloc1_8_r8 (gfc_array_i8 * retarray, gfc_array_r8 * array, 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; diff --git a/libgfortran/generated/minval_i4.c b/libgfortran/generated/minval_i4.c index 6933011..d0a8a5e 100644 --- a/libgfortran/generated/minval_i4.c +++ b/libgfortran/generated/minval_i4.c @@ -194,6 +194,9 @@ mminval_i4 (gfc_array_i4 * retarray, gfc_array_i4 * array, 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; diff --git a/libgfortran/generated/minval_i8.c b/libgfortran/generated/minval_i8.c index 579e5f9..9d44514 100644 --- a/libgfortran/generated/minval_i8.c +++ b/libgfortran/generated/minval_i8.c @@ -194,6 +194,9 @@ mminval_i8 (gfc_array_i8 * retarray, gfc_array_i8 * array, 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; diff --git a/libgfortran/generated/minval_r4.c b/libgfortran/generated/minval_r4.c index d936e2c..4220d87 100644 --- a/libgfortran/generated/minval_r4.c +++ b/libgfortran/generated/minval_r4.c @@ -194,6 +194,9 @@ mminval_r4 (gfc_array_r4 * retarray, gfc_array_r4 * array, 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; diff --git a/libgfortran/generated/minval_r8.c b/libgfortran/generated/minval_r8.c index a85e29e..d6c5b00 100644 --- a/libgfortran/generated/minval_r8.c +++ b/libgfortran/generated/minval_r8.c @@ -194,6 +194,9 @@ mminval_r8 (gfc_array_r8 * retarray, gfc_array_r8 * array, 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; diff --git a/libgfortran/generated/product_c4.c b/libgfortran/generated/product_c4.c index 2960470..d20ad9b 100644 --- a/libgfortran/generated/product_c4.c +++ b/libgfortran/generated/product_c4.c @@ -192,6 +192,9 @@ mproduct_c4 (gfc_array_c4 * retarray, gfc_array_c4 * array, 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; diff --git a/libgfortran/generated/product_c8.c b/libgfortran/generated/product_c8.c index fc3eccb..706e973 100644 --- a/libgfortran/generated/product_c8.c +++ b/libgfortran/generated/product_c8.c @@ -192,6 +192,9 @@ mproduct_c8 (gfc_array_c8 * retarray, gfc_array_c8 * array, 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; diff --git a/libgfortran/generated/product_i4.c b/libgfortran/generated/product_i4.c index d349b66..f8f86d6 100644 --- a/libgfortran/generated/product_i4.c +++ b/libgfortran/generated/product_i4.c @@ -192,6 +192,9 @@ mproduct_i4 (gfc_array_i4 * retarray, gfc_array_i4 * array, 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; diff --git a/libgfortran/generated/product_i8.c b/libgfortran/generated/product_i8.c index 1fe0745..00ae28b 100644 --- a/libgfortran/generated/product_i8.c +++ b/libgfortran/generated/product_i8.c @@ -192,6 +192,9 @@ mproduct_i8 (gfc_array_i8 * retarray, gfc_array_i8 * array, 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; diff --git a/libgfortran/generated/product_r4.c b/libgfortran/generated/product_r4.c index 592210d..ea377bb 100644 --- a/libgfortran/generated/product_r4.c +++ b/libgfortran/generated/product_r4.c @@ -192,6 +192,9 @@ mproduct_r4 (gfc_array_r4 * retarray, gfc_array_r4 * array, 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; diff --git a/libgfortran/generated/product_r8.c b/libgfortran/generated/product_r8.c index 922bcbe..58d22cf 100644 --- a/libgfortran/generated/product_r8.c +++ b/libgfortran/generated/product_r8.c @@ -192,6 +192,9 @@ mproduct_r8 (gfc_array_r8 * retarray, gfc_array_r8 * array, 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; diff --git a/libgfortran/generated/sum_c4.c b/libgfortran/generated/sum_c4.c index 74efd07..d9b36d8 100644 --- a/libgfortran/generated/sum_c4.c +++ b/libgfortran/generated/sum_c4.c @@ -192,6 +192,9 @@ msum_c4 (gfc_array_c4 * retarray, gfc_array_c4 * array, 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; diff --git a/libgfortran/generated/sum_c8.c b/libgfortran/generated/sum_c8.c index 7d68810..a5c44cd 100644 --- a/libgfortran/generated/sum_c8.c +++ b/libgfortran/generated/sum_c8.c @@ -192,6 +192,9 @@ msum_c8 (gfc_array_c8 * retarray, gfc_array_c8 * array, 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; diff --git a/libgfortran/generated/sum_i4.c b/libgfortran/generated/sum_i4.c index 01b4112..b10798f 100644 --- a/libgfortran/generated/sum_i4.c +++ b/libgfortran/generated/sum_i4.c @@ -192,6 +192,9 @@ msum_i4 (gfc_array_i4 * retarray, gfc_array_i4 * array, 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; diff --git a/libgfortran/generated/sum_i8.c b/libgfortran/generated/sum_i8.c index df882c8..0d3e191 100644 --- a/libgfortran/generated/sum_i8.c +++ b/libgfortran/generated/sum_i8.c @@ -192,6 +192,9 @@ msum_i8 (gfc_array_i8 * retarray, gfc_array_i8 * array, 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; diff --git a/libgfortran/generated/sum_r4.c b/libgfortran/generated/sum_r4.c index d88384d..c0a81d5 100644 --- a/libgfortran/generated/sum_r4.c +++ b/libgfortran/generated/sum_r4.c @@ -192,6 +192,9 @@ msum_r4 (gfc_array_r4 * retarray, gfc_array_r4 * array, 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; diff --git a/libgfortran/generated/sum_r8.c b/libgfortran/generated/sum_r8.c index 6658de7..190cabb 100644 --- a/libgfortran/generated/sum_r8.c +++ b/libgfortran/generated/sum_r8.c @@ -192,6 +192,9 @@ msum_r8 (gfc_array_r8 * retarray, gfc_array_r8 * array, 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; -- cgit v1.1