diff options
Diffstat (limited to 'libgfortran/generated/cshift1_4.c')
-rw-r--r-- | libgfortran/generated/cshift1_4.c | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/libgfortran/generated/cshift1_4.c b/libgfortran/generated/cshift1_4.c index c6f124fe1f7..f048e8e401f 100644 --- a/libgfortran/generated/cshift1_4.c +++ b/libgfortran/generated/cshift1_4.c @@ -35,8 +35,7 @@ static void cshift1 (gfc_array_char * const restrict ret, const gfc_array_char * const restrict array, const gfc_array_i4 * const restrict h, - const GFC_INTEGER_4 * const restrict pwhich, - index_type size) + const GFC_INTEGER_4 * const restrict pwhich) { /* r.* indicates the return array. */ index_type rstride[GFC_MAX_DIMENSIONS]; @@ -63,6 +62,7 @@ cshift1 (gfc_array_char * const restrict ret, int which; GFC_INTEGER_4 sh; index_type arraysize; + index_type size; if (pwhich) which = *pwhich - 1; @@ -72,6 +72,8 @@ cshift1 (gfc_array_char * const restrict ret, if (which < 0 || (which + 1) > GFC_DESCRIPTOR_RANK (array)) runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'"); + size = GFC_DESCRIPTOR_SIZE(array); + arraysize = size0 ((array_t *)array); if (ret->data == NULL) @@ -83,13 +85,17 @@ cshift1 (gfc_array_char * const restrict ret, ret->dtype = array->dtype; for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++) { - ret->dim[i].lbound = 0; - ret->dim[i].ubound = array->dim[i].ubound - array->dim[i].lbound; + index_type ub, str; + + ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1; if (i == 0) - ret->dim[i].stride = 1; + str = 1; else - ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride; + str = GFC_DESCRIPTOR_EXTENT(ret,i-1) * + GFC_DESCRIPTOR_STRIDE(ret,i-1); + + GFC_DIMENSION_SET(ret->dim[i], 0, ub, str); } } @@ -109,22 +115,22 @@ cshift1 (gfc_array_char * const restrict ret, { if (dim == which) { - roffset = ret->dim[dim].stride * size; + roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); if (roffset == 0) roffset = size; - soffset = array->dim[dim].stride * size; + soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); if (soffset == 0) soffset = size; - len = array->dim[dim].ubound + 1 - array->dim[dim].lbound; + len = GFC_DESCRIPTOR_EXTENT(array,dim); } else { count[n] = 0; - extent[n] = array->dim[dim].ubound + 1 - array->dim[dim].lbound; - rstride[n] = ret->dim[dim].stride * size; - sstride[n] = array->dim[dim].stride * size; + extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); - hstride[n] = h->dim[n].stride; + hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n); n++; } } @@ -210,7 +216,7 @@ cshift1_4 (gfc_array_char * const restrict ret, const gfc_array_i4 * const restrict h, const GFC_INTEGER_4 * const restrict pwhich) { - cshift1 (ret, array, h, pwhich, GFC_DESCRIPTOR_SIZE (array)); + cshift1 (ret, array, h, pwhich); } @@ -228,9 +234,9 @@ cshift1_4_char (gfc_array_char * const restrict ret, const gfc_array_char * const restrict array, const gfc_array_i4 * const restrict h, const GFC_INTEGER_4 * const restrict pwhich, - GFC_INTEGER_4 array_length) + GFC_INTEGER_4 array_length __attribute__((unused))) { - cshift1 (ret, array, h, pwhich, array_length); + cshift1 (ret, array, h, pwhich); } @@ -248,9 +254,9 @@ cshift1_4_char4 (gfc_array_char * const restrict ret, const gfc_array_char * const restrict array, const gfc_array_i4 * const restrict h, const GFC_INTEGER_4 * const restrict pwhich, - GFC_INTEGER_4 array_length) + GFC_INTEGER_4 array_length __attribute__((unused))) { - cshift1 (ret, array, h, pwhich, array_length * sizeof (gfc_char4_t)); + cshift1 (ret, array, h, pwhich); } #endif |