diff options
Diffstat (limited to 'libgfortran/generated')
323 files changed, 6112 insertions, 5760 deletions
diff --git a/libgfortran/generated/all_l1.c b/libgfortran/generated/all_l1.c index 0f008b97dcb..76e11b79ff6 100644 --- a/libgfortran/generated/all_l1.c +++ b/libgfortran/generated/all_l1.c @@ -58,17 +58,17 @@ all_l1 (gfc_array_l1 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ all_l1 (gfc_array_l1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ all_l1 (gfc_array_l1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ all_l1 (gfc_array_l1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/all_l16.c b/libgfortran/generated/all_l16.c index a9f85b4bfed..85085224235 100644 --- a/libgfortran/generated/all_l16.c +++ b/libgfortran/generated/all_l16.c @@ -58,17 +58,17 @@ all_l16 (gfc_array_l16 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ all_l16 (gfc_array_l16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ all_l16 (gfc_array_l16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ all_l16 (gfc_array_l16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/all_l2.c b/libgfortran/generated/all_l2.c index 3ef4a1dc25c..763a25db0d3 100644 --- a/libgfortran/generated/all_l2.c +++ b/libgfortran/generated/all_l2.c @@ -58,17 +58,17 @@ all_l2 (gfc_array_l2 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ all_l2 (gfc_array_l2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ all_l2 (gfc_array_l2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ all_l2 (gfc_array_l2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/all_l4.c b/libgfortran/generated/all_l4.c index 58dab4f124d..699f81afb6e 100644 --- a/libgfortran/generated/all_l4.c +++ b/libgfortran/generated/all_l4.c @@ -58,17 +58,17 @@ all_l4 (gfc_array_l4 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ all_l4 (gfc_array_l4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ all_l4 (gfc_array_l4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ all_l4 (gfc_array_l4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/all_l8.c b/libgfortran/generated/all_l8.c index 4293aaa06b7..6710767f0fc 100644 --- a/libgfortran/generated/all_l8.c +++ b/libgfortran/generated/all_l8.c @@ -58,17 +58,17 @@ all_l8 (gfc_array_l8 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ all_l8 (gfc_array_l8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ all_l8 (gfc_array_l8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ all_l8 (gfc_array_l8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/any_l1.c b/libgfortran/generated/any_l1.c index 46387fdd2a2..783f762b171 100644 --- a/libgfortran/generated/any_l1.c +++ b/libgfortran/generated/any_l1.c @@ -58,17 +58,17 @@ any_l1 (gfc_array_l1 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ any_l1 (gfc_array_l1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ any_l1 (gfc_array_l1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ any_l1 (gfc_array_l1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/any_l16.c b/libgfortran/generated/any_l16.c index b29fdd923d7..eb84fc3d950 100644 --- a/libgfortran/generated/any_l16.c +++ b/libgfortran/generated/any_l16.c @@ -58,17 +58,17 @@ any_l16 (gfc_array_l16 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ any_l16 (gfc_array_l16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ any_l16 (gfc_array_l16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ any_l16 (gfc_array_l16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/any_l2.c b/libgfortran/generated/any_l2.c index a63c593d4b8..a5c34959796 100644 --- a/libgfortran/generated/any_l2.c +++ b/libgfortran/generated/any_l2.c @@ -58,17 +58,17 @@ any_l2 (gfc_array_l2 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ any_l2 (gfc_array_l2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ any_l2 (gfc_array_l2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ any_l2 (gfc_array_l2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/any_l4.c b/libgfortran/generated/any_l4.c index ccd35d78935..129fe997d6b 100644 --- a/libgfortran/generated/any_l4.c +++ b/libgfortran/generated/any_l4.c @@ -58,17 +58,17 @@ any_l4 (gfc_array_l4 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ any_l4 (gfc_array_l4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ any_l4 (gfc_array_l4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ any_l4 (gfc_array_l4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/any_l8.c b/libgfortran/generated/any_l8.c index e089ea8beed..b358aba5b0e 100644 --- a/libgfortran/generated/any_l8.c +++ b/libgfortran/generated/any_l8.c @@ -58,17 +58,17 @@ any_l8 (gfc_array_l8 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ any_l8 (gfc_array_l8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ any_l8 (gfc_array_l8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ any_l8 (gfc_array_l8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/bessel_r10.c b/libgfortran/generated/bessel_r10.c index 14b93e91007..cd55e1fdbd9 100644 --- a/libgfortran/generated/bessel_r10.c +++ b/libgfortran/generated/bessel_r10.c @@ -49,12 +49,12 @@ bessel_jn_r10 (gfc_array_r10 * const restrict ret, int n1, int n2, GFC_REAL_10 x GFC_REAL_10 last1, last2, x2rev; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (ret->base_addr == NULL) { size_t size = n2 < n1 ? 0 : n2-n1+1; - GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_10)); ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_10)); ret->offset = 0; } @@ -68,7 +68,7 @@ bessel_jn_r10 (gfc_array_r10 * const restrict ret, int n1, int n2, GFC_REAL_10 x "(%ld vs. %ld)", (long int) n2-n1, (long int) GFC_DESCRIPTOR_EXTENT(ret,0)); - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (unlikely (x == 0)) { @@ -116,12 +116,12 @@ bessel_yn_r10 (gfc_array_r10 * const restrict ret, int n1, int n2, GFC_REAL_10 last1, last2, x2rev; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (ret->base_addr == NULL) { size_t size = n2 < n1 ? 0 : n2-n1+1; - GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_10)); ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_10)); ret->offset = 0; } @@ -135,7 +135,7 @@ bessel_yn_r10 (gfc_array_r10 * const restrict ret, int n1, int n2, "(%ld vs. %ld)", (long int) n2-n1, (long int) GFC_DESCRIPTOR_EXTENT(ret,0)); - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (unlikely (x == 0)) { diff --git a/libgfortran/generated/bessel_r16.c b/libgfortran/generated/bessel_r16.c index d64fa9c138e..aff3cd211b0 100644 --- a/libgfortran/generated/bessel_r16.c +++ b/libgfortran/generated/bessel_r16.c @@ -53,12 +53,12 @@ bessel_jn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2, GFC_REAL_16 x GFC_REAL_16 last1, last2, x2rev; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (ret->base_addr == NULL) { size_t size = n2 < n1 ? 0 : n2-n1+1; - GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_16)); ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_16)); ret->offset = 0; } @@ -72,7 +72,7 @@ bessel_jn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2, GFC_REAL_16 x "(%ld vs. %ld)", (long int) n2-n1, (long int) GFC_DESCRIPTOR_EXTENT(ret,0)); - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (unlikely (x == 0)) { @@ -120,12 +120,12 @@ bessel_yn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2, GFC_REAL_16 last1, last2, x2rev; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (ret->base_addr == NULL) { size_t size = n2 < n1 ? 0 : n2-n1+1; - GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_16)); ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_16)); ret->offset = 0; } @@ -139,7 +139,7 @@ bessel_yn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2, "(%ld vs. %ld)", (long int) n2-n1, (long int) GFC_DESCRIPTOR_EXTENT(ret,0)); - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (unlikely (x == 0)) { diff --git a/libgfortran/generated/bessel_r4.c b/libgfortran/generated/bessel_r4.c index a86bb5fa958..186280aa66c 100644 --- a/libgfortran/generated/bessel_r4.c +++ b/libgfortran/generated/bessel_r4.c @@ -49,12 +49,12 @@ bessel_jn_r4 (gfc_array_r4 * const restrict ret, int n1, int n2, GFC_REAL_4 x) GFC_REAL_4 last1, last2, x2rev; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (ret->base_addr == NULL) { size_t size = n2 < n1 ? 0 : n2-n1+1; - GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_4)); ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_4)); ret->offset = 0; } @@ -68,7 +68,7 @@ bessel_jn_r4 (gfc_array_r4 * const restrict ret, int n1, int n2, GFC_REAL_4 x) "(%ld vs. %ld)", (long int) n2-n1, (long int) GFC_DESCRIPTOR_EXTENT(ret,0)); - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (unlikely (x == 0)) { @@ -116,12 +116,12 @@ bessel_yn_r4 (gfc_array_r4 * const restrict ret, int n1, int n2, GFC_REAL_4 last1, last2, x2rev; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (ret->base_addr == NULL) { size_t size = n2 < n1 ? 0 : n2-n1+1; - GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_4)); ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_4)); ret->offset = 0; } @@ -135,7 +135,7 @@ bessel_yn_r4 (gfc_array_r4 * const restrict ret, int n1, int n2, "(%ld vs. %ld)", (long int) n2-n1, (long int) GFC_DESCRIPTOR_EXTENT(ret,0)); - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (unlikely (x == 0)) { diff --git a/libgfortran/generated/bessel_r8.c b/libgfortran/generated/bessel_r8.c index 84018872e05..ecc23d68c62 100644 --- a/libgfortran/generated/bessel_r8.c +++ b/libgfortran/generated/bessel_r8.c @@ -49,12 +49,12 @@ bessel_jn_r8 (gfc_array_r8 * const restrict ret, int n1, int n2, GFC_REAL_8 x) GFC_REAL_8 last1, last2, x2rev; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (ret->base_addr == NULL) { size_t size = n2 < n1 ? 0 : n2-n1+1; - GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_8)); ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_8)); ret->offset = 0; } @@ -68,7 +68,7 @@ bessel_jn_r8 (gfc_array_r8 * const restrict ret, int n1, int n2, GFC_REAL_8 x) "(%ld vs. %ld)", (long int) n2-n1, (long int) GFC_DESCRIPTOR_EXTENT(ret,0)); - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (unlikely (x == 0)) { @@ -116,12 +116,12 @@ bessel_yn_r8 (gfc_array_r8 * const restrict ret, int n1, int n2, GFC_REAL_8 last1, last2, x2rev; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (ret->base_addr == NULL) { size_t size = n2 < n1 ? 0 : n2-n1+1; - GFC_DIMENSION_SET(ret->dim[0], 0, size-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, size, sizeof (GFC_REAL_8)); ret->base_addr = xmallocarray (size, sizeof (GFC_REAL_8)); ret->offset = 0; } @@ -135,7 +135,7 @@ bessel_yn_r8 (gfc_array_r8 * const restrict ret, int n1, int n2, "(%ld vs. %ld)", (long int) n2-n1, (long int) GFC_DESCRIPTOR_EXTENT(ret,0)); - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (unlikely (x == 0)) { diff --git a/libgfortran/generated/count_16_l.c b/libgfortran/generated/count_16_l.c index c6c0b5b9ceb..8557c058870 100644 --- a/libgfortran/generated/count_16_l.c +++ b/libgfortran/generated/count_16_l.c @@ -58,17 +58,17 @@ count_16_l (gfc_array_i16 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ count_16_l (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ count_16_l (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ count_16_l (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/count_1_l.c b/libgfortran/generated/count_1_l.c index 15d270d0443..21024c13888 100644 --- a/libgfortran/generated/count_1_l.c +++ b/libgfortran/generated/count_1_l.c @@ -58,17 +58,17 @@ count_1_l (gfc_array_i1 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ count_1_l (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ count_1_l (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ count_1_l (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/count_2_l.c b/libgfortran/generated/count_2_l.c index fd9b3d37ab4..2b3babb961c 100644 --- a/libgfortran/generated/count_2_l.c +++ b/libgfortran/generated/count_2_l.c @@ -58,17 +58,17 @@ count_2_l (gfc_array_i2 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ count_2_l (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ count_2_l (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ count_2_l (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/count_4_l.c b/libgfortran/generated/count_4_l.c index 1e15256caa7..4c902e98332 100644 --- a/libgfortran/generated/count_4_l.c +++ b/libgfortran/generated/count_4_l.c @@ -58,17 +58,17 @@ count_4_l (gfc_array_i4 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ count_4_l (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ count_4_l (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ count_4_l (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/count_8_l.c b/libgfortran/generated/count_8_l.c index 97962a4fe2d..83e1c5ee51c 100644 --- a/libgfortran/generated/count_8_l.c +++ b/libgfortran/generated/count_8_l.c @@ -58,17 +58,17 @@ count_8_l (gfc_array_i8 * const restrict retarray, dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; - src_kind = GFC_DESCRIPTOR_SIZE (array); + src_kind = GFC_DESCRIPTOR_ELEM_LEN (array); len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + delta = GFC_DESCRIPTOR_SM(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); + sstride[n] = GFC_DESCRIPTOR_SM(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ count_8_l (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); + sstride[n] = GFC_DESCRIPTOR_SM(array,n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); if (extent[n] < 0) @@ -85,23 +85,23 @@ count_8_l (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -139,7 +139,7 @@ count_8_l (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/cshift0_c10.c b/libgfortran/generated/cshift0_c10.c index f5575329ff2..cdea0f15e7e 100644 --- a/libgfortran/generated/cshift0_c10.c +++ b/libgfortran/generated/cshift0_c10.c @@ -69,10 +69,10 @@ cshift0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift0_c16.c b/libgfortran/generated/cshift0_c16.c index 2c5ffc1c620..ec0d2a21795 100644 --- a/libgfortran/generated/cshift0_c16.c +++ b/libgfortran/generated/cshift0_c16.c @@ -69,10 +69,10 @@ cshift0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift0_c4.c b/libgfortran/generated/cshift0_c4.c index f437bc5916f..145306bcf81 100644 --- a/libgfortran/generated/cshift0_c4.c +++ b/libgfortran/generated/cshift0_c4.c @@ -69,10 +69,10 @@ cshift0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift0_c8.c b/libgfortran/generated/cshift0_c8.c index 2dceecd8cb7..68ff130fdaf 100644 --- a/libgfortran/generated/cshift0_c8.c +++ b/libgfortran/generated/cshift0_c8.c @@ -69,10 +69,10 @@ cshift0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift0_i1.c b/libgfortran/generated/cshift0_i1.c index 77c5c2ae916..32d27a3a083 100644 --- a/libgfortran/generated/cshift0_i1.c +++ b/libgfortran/generated/cshift0_i1.c @@ -69,10 +69,10 @@ cshift0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift0_i16.c b/libgfortran/generated/cshift0_i16.c index 13209a850d6..06aded9784d 100644 --- a/libgfortran/generated/cshift0_i16.c +++ b/libgfortran/generated/cshift0_i16.c @@ -69,10 +69,10 @@ cshift0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift0_i2.c b/libgfortran/generated/cshift0_i2.c index a03859be99e..b2ce7832e48 100644 --- a/libgfortran/generated/cshift0_i2.c +++ b/libgfortran/generated/cshift0_i2.c @@ -69,10 +69,10 @@ cshift0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift0_i4.c b/libgfortran/generated/cshift0_i4.c index c3e179b67e6..b89a4a7f558 100644 --- a/libgfortran/generated/cshift0_i4.c +++ b/libgfortran/generated/cshift0_i4.c @@ -69,10 +69,10 @@ cshift0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift0_i8.c b/libgfortran/generated/cshift0_i8.c index b15e625e287..b02fca11cdf 100644 --- a/libgfortran/generated/cshift0_i8.c +++ b/libgfortran/generated/cshift0_i8.c @@ -69,10 +69,10 @@ cshift0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift0_r10.c b/libgfortran/generated/cshift0_r10.c index 77d8d9a60bc..3744c3ade1a 100644 --- a/libgfortran/generated/cshift0_r10.c +++ b/libgfortran/generated/cshift0_r10.c @@ -69,10 +69,10 @@ cshift0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift0_r16.c b/libgfortran/generated/cshift0_r16.c index 6996519f457..c7325639bd7 100644 --- a/libgfortran/generated/cshift0_r16.c +++ b/libgfortran/generated/cshift0_r16.c @@ -69,10 +69,10 @@ cshift0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift0_r4.c b/libgfortran/generated/cshift0_r4.c index 3ff3bc5c3f0..e6dcb1e0ddc 100644 --- a/libgfortran/generated/cshift0_r4.c +++ b/libgfortran/generated/cshift0_r4.c @@ -69,10 +69,10 @@ cshift0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift0_r8.c b/libgfortran/generated/cshift0_r8.c index e71fe661890..b5587b4c25b 100644 --- a/libgfortran/generated/cshift0_r8.c +++ b/libgfortran/generated/cshift0_r8.c @@ -69,10 +69,10 @@ cshift0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, ptrdiff_t shift, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE(ret,dim); + roffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); if (roffset == 0) roffset = 1; - soffset = GFC_DESCRIPTOR_STRIDE(array,dim); + soffset = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); if (soffset == 0) soffset = 1; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -81,8 +81,8 @@ cshift0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, ptrdiff_t shift, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); n++; } } diff --git a/libgfortran/generated/cshift1_16.c b/libgfortran/generated/cshift1_16.c index b0cc767aea7..6ea2c6595ef 100644 --- a/libgfortran/generated/cshift1_16.c +++ b/libgfortran/generated/cshift1_16.c @@ -72,30 +72,27 @@ 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); + size = GFC_DESCRIPTOR_ELEM_LEN(array); arraysize = size0 ((array_t *)array); if (ret->base_addr == NULL) { int i; + index_type sm, ext; ret->base_addr = xmallocarray (arraysize, size); + ret->elem_len = array->elem_len; + ret->type = array->type; ret->offset = 0; - ret->dtype = array->dtype; + sm = sizeof (GFC_INTEGER_16); + ext = 1; for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++) { - index_type ub, str; + sm *= ext; + ext = GFC_DESCRIPTOR_EXTENT (array, i); - ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1; - - if (i == 0) - str = 1; - else - str = GFC_DESCRIPTOR_EXTENT(ret,i-1) * - GFC_DESCRIPTOR_STRIDE(ret,i-1); - - GFC_DIMENSION_SET(ret->dim[i], 0, ub, str); + GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm); } } else if (unlikely (compile_options.bounds_check)) @@ -126,10 +123,10 @@ cshift1 (gfc_array_char * const restrict ret, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); + roffset = GFC_DESCRIPTOR_SM(ret,dim); if (roffset == 0) roffset = size; - soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + soffset = GFC_DESCRIPTOR_SM(array,dim); if (soffset == 0) soffset = size; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -138,10 +135,10 @@ cshift1 (gfc_array_char * const restrict ret, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + rstride[n] = GFC_DESCRIPTOR_SM(ret,dim); + sstride[n] = GFC_DESCRIPTOR_SM(array,dim); - hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n); + hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n); n++; } } diff --git a/libgfortran/generated/cshift1_4.c b/libgfortran/generated/cshift1_4.c index 5ea8a6acedd..4793e58f183 100644 --- a/libgfortran/generated/cshift1_4.c +++ b/libgfortran/generated/cshift1_4.c @@ -72,30 +72,27 @@ 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); + size = GFC_DESCRIPTOR_ELEM_LEN(array); arraysize = size0 ((array_t *)array); if (ret->base_addr == NULL) { int i; + index_type sm, ext; ret->base_addr = xmallocarray (arraysize, size); + ret->elem_len = array->elem_len; + ret->type = array->type; ret->offset = 0; - ret->dtype = array->dtype; + sm = sizeof (GFC_INTEGER_4); + ext = 1; for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++) { - index_type ub, str; + sm *= ext; + ext = GFC_DESCRIPTOR_EXTENT (array, i); - ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1; - - if (i == 0) - str = 1; - else - str = GFC_DESCRIPTOR_EXTENT(ret,i-1) * - GFC_DESCRIPTOR_STRIDE(ret,i-1); - - GFC_DIMENSION_SET(ret->dim[i], 0, ub, str); + GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm); } } else if (unlikely (compile_options.bounds_check)) @@ -126,10 +123,10 @@ cshift1 (gfc_array_char * const restrict ret, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); + roffset = GFC_DESCRIPTOR_SM(ret,dim); if (roffset == 0) roffset = size; - soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + soffset = GFC_DESCRIPTOR_SM(array,dim); if (soffset == 0) soffset = size; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -138,10 +135,10 @@ cshift1 (gfc_array_char * const restrict ret, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + rstride[n] = GFC_DESCRIPTOR_SM(ret,dim); + sstride[n] = GFC_DESCRIPTOR_SM(array,dim); - hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n); + hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n); n++; } } diff --git a/libgfortran/generated/cshift1_8.c b/libgfortran/generated/cshift1_8.c index 5c4dbc36048..9be7415b628 100644 --- a/libgfortran/generated/cshift1_8.c +++ b/libgfortran/generated/cshift1_8.c @@ -72,30 +72,27 @@ 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); + size = GFC_DESCRIPTOR_ELEM_LEN(array); arraysize = size0 ((array_t *)array); if (ret->base_addr == NULL) { int i; + index_type sm, ext; ret->base_addr = xmallocarray (arraysize, size); + ret->elem_len = array->elem_len; + ret->type = array->type; ret->offset = 0; - ret->dtype = array->dtype; + sm = sizeof (GFC_INTEGER_8); + ext = 1; for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++) { - index_type ub, str; + sm *= ext; + ext = GFC_DESCRIPTOR_EXTENT (array, i); - ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1; - - if (i == 0) - str = 1; - else - str = GFC_DESCRIPTOR_EXTENT(ret,i-1) * - GFC_DESCRIPTOR_STRIDE(ret,i-1); - - GFC_DIMENSION_SET(ret->dim[i], 0, ub, str); + GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm); } } else if (unlikely (compile_options.bounds_check)) @@ -126,10 +123,10 @@ cshift1 (gfc_array_char * const restrict ret, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); + roffset = GFC_DESCRIPTOR_SM(ret,dim); if (roffset == 0) roffset = size; - soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + soffset = GFC_DESCRIPTOR_SM(array,dim); if (soffset == 0) soffset = size; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -138,10 +135,10 @@ cshift1 (gfc_array_char * const restrict ret, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + rstride[n] = GFC_DESCRIPTOR_SM(ret,dim); + sstride[n] = GFC_DESCRIPTOR_SM(array,dim); - hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n); + hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n); n++; } } diff --git a/libgfortran/generated/eoshift1_16.c b/libgfortran/generated/eoshift1_16.c index 566d807b3a4..06a3682035c 100644 --- a/libgfortran/generated/eoshift1_16.c +++ b/libgfortran/generated/eoshift1_16.c @@ -73,7 +73,7 @@ eoshift1 (gfc_array_char * const restrict ret, soffset = 0; roffset = 0; - size = GFC_DESCRIPTOR_SIZE(array); + size = GFC_DESCRIPTOR_ELEM_LEN(array); if (pwhich) which = *pwhich - 1; @@ -88,21 +88,22 @@ eoshift1 (gfc_array_char * const restrict ret, { int i; + ret->elem_len = array->elem_len; + ret->type = array->type; ret->offset = 0; - ret->dtype = array->dtype; for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++) { - index_type ub, str; + index_type ext, sm; - ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1; + ext = GFC_DESCRIPTOR_EXTENT (array, i); if (i == 0) - str = 1; + sm = size; else - str = GFC_DESCRIPTOR_EXTENT(ret,i-1) - * GFC_DESCRIPTOR_STRIDE(ret,i-1); + sm = GFC_DESCRIPTOR_EXTENT (ret, i-1) + * GFC_DESCRIPTOR_SM (ret, i-1); - GFC_DIMENSION_SET(ret->dim[i], 0, ub, str); + GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm); } /* xmallocarray allocates a single byte for zero size. */ @@ -129,10 +130,10 @@ eoshift1 (gfc_array_char * const restrict ret, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); + roffset = GFC_DESCRIPTOR_SM(ret,dim); if (roffset == 0) roffset = size; - soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + soffset = GFC_DESCRIPTOR_SM(array,dim); if (soffset == 0) soffset = size; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -141,10 +142,10 @@ eoshift1 (gfc_array_char * const restrict ret, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + rstride[n] = GFC_DESCRIPTOR_SM(ret,dim); + sstride[n] = GFC_DESCRIPTOR_SM(array,dim); - hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n); + hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n); n++; } } diff --git a/libgfortran/generated/eoshift1_4.c b/libgfortran/generated/eoshift1_4.c index bd5fabad311..7b0b4929aa7 100644 --- a/libgfortran/generated/eoshift1_4.c +++ b/libgfortran/generated/eoshift1_4.c @@ -73,7 +73,7 @@ eoshift1 (gfc_array_char * const restrict ret, soffset = 0; roffset = 0; - size = GFC_DESCRIPTOR_SIZE(array); + size = GFC_DESCRIPTOR_ELEM_LEN(array); if (pwhich) which = *pwhich - 1; @@ -88,21 +88,22 @@ eoshift1 (gfc_array_char * const restrict ret, { int i; + ret->elem_len = array->elem_len; + ret->type = array->type; ret->offset = 0; - ret->dtype = array->dtype; for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++) { - index_type ub, str; + index_type ext, sm; - ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1; + ext = GFC_DESCRIPTOR_EXTENT (array, i); if (i == 0) - str = 1; + sm = size; else - str = GFC_DESCRIPTOR_EXTENT(ret,i-1) - * GFC_DESCRIPTOR_STRIDE(ret,i-1); + sm = GFC_DESCRIPTOR_EXTENT (ret, i-1) + * GFC_DESCRIPTOR_SM (ret, i-1); - GFC_DIMENSION_SET(ret->dim[i], 0, ub, str); + GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm); } /* xmallocarray allocates a single byte for zero size. */ @@ -129,10 +130,10 @@ eoshift1 (gfc_array_char * const restrict ret, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); + roffset = GFC_DESCRIPTOR_SM(ret,dim); if (roffset == 0) roffset = size; - soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + soffset = GFC_DESCRIPTOR_SM(array,dim); if (soffset == 0) soffset = size; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -141,10 +142,10 @@ eoshift1 (gfc_array_char * const restrict ret, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + rstride[n] = GFC_DESCRIPTOR_SM(ret,dim); + sstride[n] = GFC_DESCRIPTOR_SM(array,dim); - hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n); + hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n); n++; } } diff --git a/libgfortran/generated/eoshift1_8.c b/libgfortran/generated/eoshift1_8.c index 814f81a8149..368a463a19b 100644 --- a/libgfortran/generated/eoshift1_8.c +++ b/libgfortran/generated/eoshift1_8.c @@ -73,7 +73,7 @@ eoshift1 (gfc_array_char * const restrict ret, soffset = 0; roffset = 0; - size = GFC_DESCRIPTOR_SIZE(array); + size = GFC_DESCRIPTOR_ELEM_LEN(array); if (pwhich) which = *pwhich - 1; @@ -88,21 +88,22 @@ eoshift1 (gfc_array_char * const restrict ret, { int i; + ret->elem_len = array->elem_len; + ret->type = array->type; ret->offset = 0; - ret->dtype = array->dtype; for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++) { - index_type ub, str; + index_type ext, sm; - ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1; + ext = GFC_DESCRIPTOR_EXTENT (array, i); if (i == 0) - str = 1; + sm = size; else - str = GFC_DESCRIPTOR_EXTENT(ret,i-1) - * GFC_DESCRIPTOR_STRIDE(ret,i-1); + sm = GFC_DESCRIPTOR_EXTENT (ret, i-1) + * GFC_DESCRIPTOR_SM (ret, i-1); - GFC_DIMENSION_SET(ret->dim[i], 0, ub, str); + GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm); } /* xmallocarray allocates a single byte for zero size. */ @@ -129,10 +130,10 @@ eoshift1 (gfc_array_char * const restrict ret, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); + roffset = GFC_DESCRIPTOR_SM(ret,dim); if (roffset == 0) roffset = size; - soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + soffset = GFC_DESCRIPTOR_SM(array,dim); if (soffset == 0) soffset = size; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -141,10 +142,10 @@ eoshift1 (gfc_array_char * const restrict ret, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + rstride[n] = GFC_DESCRIPTOR_SM(ret,dim); + sstride[n] = GFC_DESCRIPTOR_SM(array,dim); - hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n); + hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n); n++; } } diff --git a/libgfortran/generated/eoshift3_16.c b/libgfortran/generated/eoshift3_16.c index 5e09df22eb5..c494cea7c20 100644 --- a/libgfortran/generated/eoshift3_16.c +++ b/libgfortran/generated/eoshift3_16.c @@ -78,7 +78,7 @@ eoshift3 (gfc_array_char * const restrict ret, roffset = 0; arraysize = size0 ((array_t *) array); - size = GFC_DESCRIPTOR_SIZE(array); + size = GFC_DESCRIPTOR_ELEM_LEN(array); if (pwhich) which = *pwhich - 1; @@ -90,21 +90,22 @@ eoshift3 (gfc_array_char * const restrict ret, int i; ret->base_addr = xmallocarray (arraysize, size); + ret->elem_len = array->elem_len; + ret->type = array->type; ret->offset = 0; - ret->dtype = array->dtype; for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++) { - index_type ub, str; + index_type ext, sm; - ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1; + ext = GFC_DESCRIPTOR_EXTENT (array,i); if (i == 0) - str = 1; + sm = size; else - str = GFC_DESCRIPTOR_EXTENT(ret,i-1) - * GFC_DESCRIPTOR_STRIDE(ret,i-1); + sm = GFC_DESCRIPTOR_EXTENT (ret, i-1) + * GFC_DESCRIPTOR_SM (ret, i-1); - GFC_DIMENSION_SET(ret->dim[i], 0, ub, str); + GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm); } /* xmallocarray allocates a single byte for zero size. */ @@ -133,10 +134,10 @@ eoshift3 (gfc_array_char * const restrict ret, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); + roffset = GFC_DESCRIPTOR_SM(ret,dim); if (roffset == 0) roffset = size; - soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + soffset = GFC_DESCRIPTOR_SM(array,dim); if (soffset == 0) soffset = size; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -145,12 +146,12 @@ eoshift3 (gfc_array_char * const restrict ret, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + rstride[n] = GFC_DESCRIPTOR_SM(ret,dim); + sstride[n] = GFC_DESCRIPTOR_SM(array,dim); - hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n); + hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n); if (bound) - bstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(bound,n); + bstride[n] = GFC_DESCRIPTOR_SM(bound,n); else bstride[n] = 0; n++; diff --git a/libgfortran/generated/eoshift3_4.c b/libgfortran/generated/eoshift3_4.c index 970402c6341..7d00e36f61a 100644 --- a/libgfortran/generated/eoshift3_4.c +++ b/libgfortran/generated/eoshift3_4.c @@ -78,7 +78,7 @@ eoshift3 (gfc_array_char * const restrict ret, roffset = 0; arraysize = size0 ((array_t *) array); - size = GFC_DESCRIPTOR_SIZE(array); + size = GFC_DESCRIPTOR_ELEM_LEN(array); if (pwhich) which = *pwhich - 1; @@ -90,21 +90,22 @@ eoshift3 (gfc_array_char * const restrict ret, int i; ret->base_addr = xmallocarray (arraysize, size); + ret->elem_len = array->elem_len; + ret->type = array->type; ret->offset = 0; - ret->dtype = array->dtype; for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++) { - index_type ub, str; + index_type ext, sm; - ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1; + ext = GFC_DESCRIPTOR_EXTENT (array,i); if (i == 0) - str = 1; + sm = size; else - str = GFC_DESCRIPTOR_EXTENT(ret,i-1) - * GFC_DESCRIPTOR_STRIDE(ret,i-1); + sm = GFC_DESCRIPTOR_EXTENT (ret, i-1) + * GFC_DESCRIPTOR_SM (ret, i-1); - GFC_DIMENSION_SET(ret->dim[i], 0, ub, str); + GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm); } /* xmallocarray allocates a single byte for zero size. */ @@ -133,10 +134,10 @@ eoshift3 (gfc_array_char * const restrict ret, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); + roffset = GFC_DESCRIPTOR_SM(ret,dim); if (roffset == 0) roffset = size; - soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + soffset = GFC_DESCRIPTOR_SM(array,dim); if (soffset == 0) soffset = size; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -145,12 +146,12 @@ eoshift3 (gfc_array_char * const restrict ret, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + rstride[n] = GFC_DESCRIPTOR_SM(ret,dim); + sstride[n] = GFC_DESCRIPTOR_SM(array,dim); - hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n); + hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n); if (bound) - bstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(bound,n); + bstride[n] = GFC_DESCRIPTOR_SM(bound,n); else bstride[n] = 0; n++; diff --git a/libgfortran/generated/eoshift3_8.c b/libgfortran/generated/eoshift3_8.c index 991eb915164..3657ea2d589 100644 --- a/libgfortran/generated/eoshift3_8.c +++ b/libgfortran/generated/eoshift3_8.c @@ -78,7 +78,7 @@ eoshift3 (gfc_array_char * const restrict ret, roffset = 0; arraysize = size0 ((array_t *) array); - size = GFC_DESCRIPTOR_SIZE(array); + size = GFC_DESCRIPTOR_ELEM_LEN(array); if (pwhich) which = *pwhich - 1; @@ -90,21 +90,22 @@ eoshift3 (gfc_array_char * const restrict ret, int i; ret->base_addr = xmallocarray (arraysize, size); + ret->elem_len = array->elem_len; + ret->type = array->type; ret->offset = 0; - ret->dtype = array->dtype; for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++) { - index_type ub, str; + index_type ext, sm; - ub = GFC_DESCRIPTOR_EXTENT(array,i) - 1; + ext = GFC_DESCRIPTOR_EXTENT (array,i); if (i == 0) - str = 1; + sm = size; else - str = GFC_DESCRIPTOR_EXTENT(ret,i-1) - * GFC_DESCRIPTOR_STRIDE(ret,i-1); + sm = GFC_DESCRIPTOR_EXTENT (ret, i-1) + * GFC_DESCRIPTOR_SM (ret, i-1); - GFC_DIMENSION_SET(ret->dim[i], 0, ub, str); + GFC_DIMENSION_SET (ret->dim[i], 0, ext, sm); } /* xmallocarray allocates a single byte for zero size. */ @@ -133,10 +134,10 @@ eoshift3 (gfc_array_char * const restrict ret, { if (dim == which) { - roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); + roffset = GFC_DESCRIPTOR_SM(ret,dim); if (roffset == 0) roffset = size; - soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + soffset = GFC_DESCRIPTOR_SM(array,dim); if (soffset == 0) soffset = size; len = GFC_DESCRIPTOR_EXTENT(array,dim); @@ -145,12 +146,12 @@ eoshift3 (gfc_array_char * const restrict ret, { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,dim); - rstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim); - sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); + rstride[n] = GFC_DESCRIPTOR_SM(ret,dim); + sstride[n] = GFC_DESCRIPTOR_SM(array,dim); - hstride[n] = GFC_DESCRIPTOR_STRIDE(h,n); + hstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(h,n); if (bound) - bstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(bound,n); + bstride[n] = GFC_DESCRIPTOR_SM(bound,n); else bstride[n] = 0; n++; diff --git a/libgfortran/generated/iall_i1.c b/libgfortran/generated/iall_i1.c index da0ce4d22fb..0e4c6f5dc46 100644 --- a/libgfortran/generated/iall_i1.c +++ b/libgfortran/generated/iall_i1.c @@ -60,11 +60,11 @@ iall_i1 (gfc_array_i1 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iall_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iall_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iall_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miall_i1 (gfc_array_i1 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miall_i1 (gfc_array_i1 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miall_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miall_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miall_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siall_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siall_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iall_i16.c b/libgfortran/generated/iall_i16.c index a3f39d3c976..33f3764b46f 100644 --- a/libgfortran/generated/iall_i16.c +++ b/libgfortran/generated/iall_i16.c @@ -60,11 +60,11 @@ iall_i16 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iall_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iall_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iall_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miall_i16 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miall_i16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miall_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miall_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miall_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siall_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siall_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iall_i2.c b/libgfortran/generated/iall_i2.c index 4ca06a8a012..52dc1da37e5 100644 --- a/libgfortran/generated/iall_i2.c +++ b/libgfortran/generated/iall_i2.c @@ -60,11 +60,11 @@ iall_i2 (gfc_array_i2 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iall_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iall_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iall_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miall_i2 (gfc_array_i2 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miall_i2 (gfc_array_i2 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miall_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miall_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miall_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siall_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siall_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iall_i4.c b/libgfortran/generated/iall_i4.c index 8ff15f4ed4a..bca8e950ebb 100644 --- a/libgfortran/generated/iall_i4.c +++ b/libgfortran/generated/iall_i4.c @@ -60,11 +60,11 @@ iall_i4 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iall_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iall_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iall_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miall_i4 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miall_i4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miall_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miall_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miall_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siall_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siall_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iall_i8.c b/libgfortran/generated/iall_i8.c index 08932d4862d..d0cf056302a 100644 --- a/libgfortran/generated/iall_i8.c +++ b/libgfortran/generated/iall_i8.c @@ -60,11 +60,11 @@ iall_i8 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iall_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iall_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iall_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miall_i8 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miall_i8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miall_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miall_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miall_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siall_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siall_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iany_i1.c b/libgfortran/generated/iany_i1.c index 999230a114c..0a2fcd9d79f 100644 --- a/libgfortran/generated/iany_i1.c +++ b/libgfortran/generated/iany_i1.c @@ -60,11 +60,11 @@ iany_i1 (gfc_array_i1 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iany_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iany_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iany_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miany_i1 (gfc_array_i1 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miany_i1 (gfc_array_i1 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miany_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miany_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miany_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siany_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siany_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iany_i16.c b/libgfortran/generated/iany_i16.c index 9410db45c33..fc61c2104c3 100644 --- a/libgfortran/generated/iany_i16.c +++ b/libgfortran/generated/iany_i16.c @@ -60,11 +60,11 @@ iany_i16 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iany_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iany_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iany_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miany_i16 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miany_i16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miany_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miany_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miany_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siany_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siany_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iany_i2.c b/libgfortran/generated/iany_i2.c index 7068bb192e2..a58c458d6c1 100644 --- a/libgfortran/generated/iany_i2.c +++ b/libgfortran/generated/iany_i2.c @@ -60,11 +60,11 @@ iany_i2 (gfc_array_i2 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iany_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iany_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iany_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miany_i2 (gfc_array_i2 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miany_i2 (gfc_array_i2 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miany_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miany_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miany_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siany_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siany_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iany_i4.c b/libgfortran/generated/iany_i4.c index 62034cfd832..7f081878907 100644 --- a/libgfortran/generated/iany_i4.c +++ b/libgfortran/generated/iany_i4.c @@ -60,11 +60,11 @@ iany_i4 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iany_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iany_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iany_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miany_i4 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miany_i4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miany_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miany_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miany_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siany_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siany_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iany_i8.c b/libgfortran/generated/iany_i8.c index f347d69f1dd..ca3dea818a8 100644 --- a/libgfortran/generated/iany_i8.c +++ b/libgfortran/generated/iany_i8.c @@ -60,11 +60,11 @@ iany_i8 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iany_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iany_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iany_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miany_i8 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miany_i8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miany_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miany_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miany_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siany_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siany_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/in_pack_c10.c b/libgfortran/generated/in_pack_c10.c index 9148af57712..ba2656115e7 100644 --- a/libgfortran/generated/in_pack_c10.c +++ b/libgfortran/generated/in_pack_c10.c @@ -57,7 +57,7 @@ internal_pack_c10 (gfc_array_c10 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_pack_c16.c b/libgfortran/generated/in_pack_c16.c index e109efc1d5d..f2285dcd60e 100644 --- a/libgfortran/generated/in_pack_c16.c +++ b/libgfortran/generated/in_pack_c16.c @@ -57,7 +57,7 @@ internal_pack_c16 (gfc_array_c16 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_pack_c4.c b/libgfortran/generated/in_pack_c4.c index 3afdaf3a44e..116cb6380df 100644 --- a/libgfortran/generated/in_pack_c4.c +++ b/libgfortran/generated/in_pack_c4.c @@ -57,7 +57,7 @@ internal_pack_c4 (gfc_array_c4 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_pack_c8.c b/libgfortran/generated/in_pack_c8.c index 995a3676dc7..f56e6bc8328 100644 --- a/libgfortran/generated/in_pack_c8.c +++ b/libgfortran/generated/in_pack_c8.c @@ -57,7 +57,7 @@ internal_pack_c8 (gfc_array_c8 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_pack_i1.c b/libgfortran/generated/in_pack_i1.c index 2ee5e283747..1a185ce6eef 100644 --- a/libgfortran/generated/in_pack_i1.c +++ b/libgfortran/generated/in_pack_i1.c @@ -57,7 +57,7 @@ internal_pack_1 (gfc_array_i1 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_pack_i16.c b/libgfortran/generated/in_pack_i16.c index ac6bb4f8ab1..b4537aa71e4 100644 --- a/libgfortran/generated/in_pack_i16.c +++ b/libgfortran/generated/in_pack_i16.c @@ -57,7 +57,7 @@ internal_pack_16 (gfc_array_i16 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_pack_i2.c b/libgfortran/generated/in_pack_i2.c index f42a89254ad..99bc9814a34 100644 --- a/libgfortran/generated/in_pack_i2.c +++ b/libgfortran/generated/in_pack_i2.c @@ -57,7 +57,7 @@ internal_pack_2 (gfc_array_i2 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_pack_i4.c b/libgfortran/generated/in_pack_i4.c index acde25aa9e3..f8a3a9694ac 100644 --- a/libgfortran/generated/in_pack_i4.c +++ b/libgfortran/generated/in_pack_i4.c @@ -57,7 +57,7 @@ internal_pack_4 (gfc_array_i4 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_pack_i8.c b/libgfortran/generated/in_pack_i8.c index 5be35445c20..7c3a927cad4 100644 --- a/libgfortran/generated/in_pack_i8.c +++ b/libgfortran/generated/in_pack_i8.c @@ -57,7 +57,7 @@ internal_pack_8 (gfc_array_i8 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_pack_r10.c b/libgfortran/generated/in_pack_r10.c index c4680d8cc92..01b9a83b35b 100644 --- a/libgfortran/generated/in_pack_r10.c +++ b/libgfortran/generated/in_pack_r10.c @@ -57,7 +57,7 @@ internal_pack_r10 (gfc_array_r10 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_pack_r16.c b/libgfortran/generated/in_pack_r16.c index ff09d1462f2..9f4d68b556a 100644 --- a/libgfortran/generated/in_pack_r16.c +++ b/libgfortran/generated/in_pack_r16.c @@ -57,7 +57,7 @@ internal_pack_r16 (gfc_array_r16 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_pack_r4.c b/libgfortran/generated/in_pack_r4.c index 34fe5829aed..316a644477e 100644 --- a/libgfortran/generated/in_pack_r4.c +++ b/libgfortran/generated/in_pack_r4.c @@ -57,7 +57,7 @@ internal_pack_r4 (gfc_array_r4 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_pack_r8.c b/libgfortran/generated/in_pack_r8.c index b0728c9b69f..be5a761e4af 100644 --- a/libgfortran/generated/in_pack_r8.c +++ b/libgfortran/generated/in_pack_r8.c @@ -57,7 +57,7 @@ internal_pack_r8 (gfc_array_r8 * source) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); extent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (extent[n] <= 0) { diff --git a/libgfortran/generated/in_unpack_c10.c b/libgfortran/generated/in_unpack_c10.c index 97f5bdfc69f..73fa9a8e715 100644 --- a/libgfortran/generated/in_unpack_c10.c +++ b/libgfortran/generated/in_unpack_c10.c @@ -52,7 +52,7 @@ internal_unpack_c10 (gfc_array_c10 * d, const GFC_COMPLEX_10 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/in_unpack_c16.c b/libgfortran/generated/in_unpack_c16.c index 69cd4af2a97..c60873af9dd 100644 --- a/libgfortran/generated/in_unpack_c16.c +++ b/libgfortran/generated/in_unpack_c16.c @@ -52,7 +52,7 @@ internal_unpack_c16 (gfc_array_c16 * d, const GFC_COMPLEX_16 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/in_unpack_c4.c b/libgfortran/generated/in_unpack_c4.c index 7e68cdc21ce..1057b64e51f 100644 --- a/libgfortran/generated/in_unpack_c4.c +++ b/libgfortran/generated/in_unpack_c4.c @@ -52,7 +52,7 @@ internal_unpack_c4 (gfc_array_c4 * d, const GFC_COMPLEX_4 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/in_unpack_c8.c b/libgfortran/generated/in_unpack_c8.c index 28ea2d557f7..b8f1b5991ac 100644 --- a/libgfortran/generated/in_unpack_c8.c +++ b/libgfortran/generated/in_unpack_c8.c @@ -52,7 +52,7 @@ internal_unpack_c8 (gfc_array_c8 * d, const GFC_COMPLEX_8 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/in_unpack_i1.c b/libgfortran/generated/in_unpack_i1.c index 6226e6163c0..b1535dc664a 100644 --- a/libgfortran/generated/in_unpack_i1.c +++ b/libgfortran/generated/in_unpack_i1.c @@ -52,7 +52,7 @@ internal_unpack_1 (gfc_array_i1 * d, const GFC_INTEGER_1 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/in_unpack_i16.c b/libgfortran/generated/in_unpack_i16.c index 480626caa87..e510bd37984 100644 --- a/libgfortran/generated/in_unpack_i16.c +++ b/libgfortran/generated/in_unpack_i16.c @@ -52,7 +52,7 @@ internal_unpack_16 (gfc_array_i16 * d, const GFC_INTEGER_16 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/in_unpack_i2.c b/libgfortran/generated/in_unpack_i2.c index ada4f1adb4a..9781fac3a2c 100644 --- a/libgfortran/generated/in_unpack_i2.c +++ b/libgfortran/generated/in_unpack_i2.c @@ -52,7 +52,7 @@ internal_unpack_2 (gfc_array_i2 * d, const GFC_INTEGER_2 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/in_unpack_i4.c b/libgfortran/generated/in_unpack_i4.c index 29e4a999693..737c4275410 100644 --- a/libgfortran/generated/in_unpack_i4.c +++ b/libgfortran/generated/in_unpack_i4.c @@ -52,7 +52,7 @@ internal_unpack_4 (gfc_array_i4 * d, const GFC_INTEGER_4 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/in_unpack_i8.c b/libgfortran/generated/in_unpack_i8.c index b4d07a0144f..606f248f704 100644 --- a/libgfortran/generated/in_unpack_i8.c +++ b/libgfortran/generated/in_unpack_i8.c @@ -52,7 +52,7 @@ internal_unpack_8 (gfc_array_i8 * d, const GFC_INTEGER_8 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/in_unpack_r10.c b/libgfortran/generated/in_unpack_r10.c index 3183e4a95bc..c7577520c4c 100644 --- a/libgfortran/generated/in_unpack_r10.c +++ b/libgfortran/generated/in_unpack_r10.c @@ -52,7 +52,7 @@ internal_unpack_r10 (gfc_array_r10 * d, const GFC_REAL_10 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/in_unpack_r16.c b/libgfortran/generated/in_unpack_r16.c index ef437a3f43f..bbc60802675 100644 --- a/libgfortran/generated/in_unpack_r16.c +++ b/libgfortran/generated/in_unpack_r16.c @@ -52,7 +52,7 @@ internal_unpack_r16 (gfc_array_r16 * d, const GFC_REAL_16 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/in_unpack_r4.c b/libgfortran/generated/in_unpack_r4.c index 4b851f20734..ef2ea315a96 100644 --- a/libgfortran/generated/in_unpack_r4.c +++ b/libgfortran/generated/in_unpack_r4.c @@ -52,7 +52,7 @@ internal_unpack_r4 (gfc_array_r4 * d, const GFC_REAL_4 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/in_unpack_r8.c b/libgfortran/generated/in_unpack_r8.c index cb85fee4424..f09607b4cf2 100644 --- a/libgfortran/generated/in_unpack_r8.c +++ b/libgfortran/generated/in_unpack_r8.c @@ -52,7 +52,7 @@ internal_unpack_r8 (gfc_array_r8 * d, const GFC_REAL_8 * src) for (n = 0; n < dim; n++) { count[n] = 0; - stride[n] = GFC_DESCRIPTOR_STRIDE(d,n); + stride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(d,n); extent[n] = GFC_DESCRIPTOR_EXTENT(d,n); if (extent[n] <= 0) return; diff --git a/libgfortran/generated/iparity_i1.c b/libgfortran/generated/iparity_i1.c index fdccc3d4433..9c96e07e2f2 100644 --- a/libgfortran/generated/iparity_i1.c +++ b/libgfortran/generated/iparity_i1.c @@ -60,11 +60,11 @@ iparity_i1 (gfc_array_i1 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iparity_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iparity_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iparity_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miparity_i1 (gfc_array_i1 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miparity_i1 (gfc_array_i1 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miparity_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miparity_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miparity_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siparity_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siparity_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iparity_i16.c b/libgfortran/generated/iparity_i16.c index 7a572ba7130..6a17f4990ca 100644 --- a/libgfortran/generated/iparity_i16.c +++ b/libgfortran/generated/iparity_i16.c @@ -60,11 +60,11 @@ iparity_i16 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iparity_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iparity_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iparity_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miparity_i16 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miparity_i16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miparity_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miparity_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miparity_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siparity_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siparity_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iparity_i2.c b/libgfortran/generated/iparity_i2.c index 49233fbc56d..7fd85d40869 100644 --- a/libgfortran/generated/iparity_i2.c +++ b/libgfortran/generated/iparity_i2.c @@ -60,11 +60,11 @@ iparity_i2 (gfc_array_i2 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iparity_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iparity_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iparity_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miparity_i2 (gfc_array_i2 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miparity_i2 (gfc_array_i2 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miparity_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miparity_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miparity_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siparity_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siparity_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iparity_i4.c b/libgfortran/generated/iparity_i4.c index 1551e51febe..1e03b3cb5d2 100644 --- a/libgfortran/generated/iparity_i4.c +++ b/libgfortran/generated/iparity_i4.c @@ -60,11 +60,11 @@ iparity_i4 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iparity_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iparity_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iparity_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miparity_i4 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miparity_i4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miparity_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miparity_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miparity_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siparity_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siparity_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/iparity_i8.c b/libgfortran/generated/iparity_i8.c index a745bb6bec6..2d7e8407d7e 100644 --- a/libgfortran/generated/iparity_i8.c +++ b/libgfortran/generated/iparity_i8.c @@ -60,11 +60,11 @@ iparity_i8 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ iparity_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ iparity_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ iparity_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ miparity_i8 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ miparity_i8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ miparity_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ miparity_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ miparity_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ siparity_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ siparity_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/matmul_c10.c b/libgfortran/generated/matmul_c10.c index 0ff7d58b9a5..d7af93c88e6 100644 --- a/libgfortran/generated/matmul_c10.c +++ b/libgfortran/generated/matmul_c10.c @@ -106,21 +106,22 @@ matmul_c10 (gfc_array_c10 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_COMPLEX_10)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_10)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_10)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_COMPLEX_10)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_c10 (gfc_array_c10 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_c10 (gfc_array_c10 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_c10 (gfc_array_c10 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_c10 (gfc_array_c10 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_c16.c b/libgfortran/generated/matmul_c16.c index a5fea00c8da..f94e89e09d5 100644 --- a/libgfortran/generated/matmul_c16.c +++ b/libgfortran/generated/matmul_c16.c @@ -106,21 +106,22 @@ matmul_c16 (gfc_array_c16 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_COMPLEX_16)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_16)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_16)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_COMPLEX_16)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_c16 (gfc_array_c16 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_c16 (gfc_array_c16 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_c16 (gfc_array_c16 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_c16 (gfc_array_c16 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_c4.c b/libgfortran/generated/matmul_c4.c index b5b0ecb83ec..5192e0822c2 100644 --- a/libgfortran/generated/matmul_c4.c +++ b/libgfortran/generated/matmul_c4.c @@ -106,21 +106,22 @@ matmul_c4 (gfc_array_c4 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_COMPLEX_4)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_4)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_4)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_COMPLEX_4)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_c4 (gfc_array_c4 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_c4 (gfc_array_c4 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_c4 (gfc_array_c4 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_c4 (gfc_array_c4 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_c8.c b/libgfortran/generated/matmul_c8.c index 077b709df98..93d737fc9d2 100644 --- a/libgfortran/generated/matmul_c8.c +++ b/libgfortran/generated/matmul_c8.c @@ -106,21 +106,22 @@ matmul_c8 (gfc_array_c8 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_COMPLEX_8)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_8)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_COMPLEX_8)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_COMPLEX_8)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_c8 (gfc_array_c8 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_c8 (gfc_array_c8 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_c8 (gfc_array_c8 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_c8 (gfc_array_c8 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_i1.c b/libgfortran/generated/matmul_i1.c index 72c998a1b47..07c6ffece24 100644 --- a/libgfortran/generated/matmul_i1.c +++ b/libgfortran/generated/matmul_i1.c @@ -106,21 +106,22 @@ matmul_i1 (gfc_array_i1 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_INTEGER_1)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_1)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_1)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_INTEGER_1)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_i1 (gfc_array_i1 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_i1 (gfc_array_i1 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_i1 (gfc_array_i1 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_i1 (gfc_array_i1 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_i16.c b/libgfortran/generated/matmul_i16.c index 59cd80ba8d0..e477d8b5e80 100644 --- a/libgfortran/generated/matmul_i16.c +++ b/libgfortran/generated/matmul_i16.c @@ -106,21 +106,22 @@ matmul_i16 (gfc_array_i16 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_INTEGER_16)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_16)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_16)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_INTEGER_16)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_i16 (gfc_array_i16 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_i16 (gfc_array_i16 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_i16 (gfc_array_i16 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_i16 (gfc_array_i16 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_i2.c b/libgfortran/generated/matmul_i2.c index 6fddc4f18e2..7b2a5f683f9 100644 --- a/libgfortran/generated/matmul_i2.c +++ b/libgfortran/generated/matmul_i2.c @@ -106,21 +106,22 @@ matmul_i2 (gfc_array_i2 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_INTEGER_2)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_2)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_2)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_INTEGER_2)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_i2 (gfc_array_i2 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_i2 (gfc_array_i2 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_i2 (gfc_array_i2 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_i2 (gfc_array_i2 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_i4.c b/libgfortran/generated/matmul_i4.c index f62cb56aa1b..a650f0ad4f7 100644 --- a/libgfortran/generated/matmul_i4.c +++ b/libgfortran/generated/matmul_i4.c @@ -106,21 +106,22 @@ matmul_i4 (gfc_array_i4 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_INTEGER_4)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_4)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_4)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_INTEGER_4)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_i4 (gfc_array_i4 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_i4 (gfc_array_i4 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_i4 (gfc_array_i4 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_i4 (gfc_array_i4 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_i8.c b/libgfortran/generated/matmul_i8.c index 6d524905ea5..c7efc77f15d 100644 --- a/libgfortran/generated/matmul_i8.c +++ b/libgfortran/generated/matmul_i8.c @@ -106,21 +106,22 @@ matmul_i8 (gfc_array_i8 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_INTEGER_8)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_8)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_INTEGER_8)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_INTEGER_8)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_i8 (gfc_array_i8 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_i8 (gfc_array_i8 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_i8 (gfc_array_i8 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_i8 (gfc_array_i8 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_l16.c b/libgfortran/generated/matmul_l16.c index 370db0731cf..1e016587d03 100644 --- a/libgfortran/generated/matmul_l16.c +++ b/libgfortran/generated/matmul_l16.c @@ -69,22 +69,23 @@ matmul_l16 (gfc_array_l16 * const restrict retarray, { if (GFC_DESCRIPTOR_RANK (a) == 1) { - GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DIMENSION_SET (retarray->dim[0], 0, + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_LOGICAL_16)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { - GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DIMENSION_SET (retarray->dim[0], 0, + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_LOGICAL_16)); } else { - GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DIMENSION_SET (retarray->dim[0], 0, + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_LOGICAL_16)); - GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DIMENSION_SET (retarray->dim[1], 0, + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_LOGICAL_16)); } retarray->base_addr @@ -134,7 +135,7 @@ matmul_l16 (gfc_array_l16 * const restrict retarray, } abase = a->base_addr; - a_kind = GFC_DESCRIPTOR_SIZE (a); + a_kind = GFC_DESCRIPTOR_ELEM_LEN (a); if (a_kind == 1 || a_kind == 2 || a_kind == 4 || a_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -146,7 +147,7 @@ matmul_l16 (gfc_array_l16 * const restrict retarray, internal_error (NULL, "Funny sized logical array"); bbase = b->base_addr; - b_kind = GFC_DESCRIPTOR_SIZE (b); + b_kind = GFC_DESCRIPTOR_ELEM_LEN (b); if (b_kind == 1 || b_kind == 2 || b_kind == 4 || b_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -162,20 +163,20 @@ matmul_l16 (gfc_array_l16 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (retarray) == 1) { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); rystride = rxstride; } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } /* If we have rank 1 parameters, zero the absent stride, and set the size to one. */ if (GFC_DESCRIPTOR_RANK (a) == 1) { - astride = GFC_DESCRIPTOR_STRIDE_BYTES(a,0); + astride = GFC_DESCRIPTOR_SM(a,0); count = GFC_DESCRIPTOR_EXTENT(a,0); xstride = 0; rxstride = 0; @@ -183,14 +184,14 @@ matmul_l16 (gfc_array_l16 * const restrict retarray, } else { - astride = GFC_DESCRIPTOR_STRIDE_BYTES(a,1); + astride = GFC_DESCRIPTOR_SM(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); - xstride = GFC_DESCRIPTOR_STRIDE_BYTES(a,0); + xstride = GFC_DESCRIPTOR_SM(a,0); xcount = GFC_DESCRIPTOR_EXTENT(a,0); } if (GFC_DESCRIPTOR_RANK (b) == 1) { - bstride = GFC_DESCRIPTOR_STRIDE_BYTES(b,0); + bstride = GFC_DESCRIPTOR_SM(b,0); assert(count == GFC_DESCRIPTOR_EXTENT(b,0)); ystride = 0; rystride = 0; @@ -198,9 +199,9 @@ matmul_l16 (gfc_array_l16 * const restrict retarray, } else { - bstride = GFC_DESCRIPTOR_STRIDE_BYTES(b,0); + bstride = GFC_DESCRIPTOR_SM(b,0); assert(count == GFC_DESCRIPTOR_EXTENT(b,0)); - ystride = GFC_DESCRIPTOR_STRIDE_BYTES(b,1); + ystride = GFC_DESCRIPTOR_SM(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_l4.c b/libgfortran/generated/matmul_l4.c index d901e3cd7d8..2b3d870acc4 100644 --- a/libgfortran/generated/matmul_l4.c +++ b/libgfortran/generated/matmul_l4.c @@ -69,22 +69,23 @@ matmul_l4 (gfc_array_l4 * const restrict retarray, { if (GFC_DESCRIPTOR_RANK (a) == 1) { - GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DIMENSION_SET (retarray->dim[0], 0, + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_LOGICAL_4)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { - GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DIMENSION_SET (retarray->dim[0], 0, + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_LOGICAL_4)); } else { - GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DIMENSION_SET (retarray->dim[0], 0, + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_LOGICAL_4)); - GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DIMENSION_SET (retarray->dim[1], 0, + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_LOGICAL_4)); } retarray->base_addr @@ -134,7 +135,7 @@ matmul_l4 (gfc_array_l4 * const restrict retarray, } abase = a->base_addr; - a_kind = GFC_DESCRIPTOR_SIZE (a); + a_kind = GFC_DESCRIPTOR_ELEM_LEN (a); if (a_kind == 1 || a_kind == 2 || a_kind == 4 || a_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -146,7 +147,7 @@ matmul_l4 (gfc_array_l4 * const restrict retarray, internal_error (NULL, "Funny sized logical array"); bbase = b->base_addr; - b_kind = GFC_DESCRIPTOR_SIZE (b); + b_kind = GFC_DESCRIPTOR_ELEM_LEN (b); if (b_kind == 1 || b_kind == 2 || b_kind == 4 || b_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -162,20 +163,20 @@ matmul_l4 (gfc_array_l4 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (retarray) == 1) { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); rystride = rxstride; } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } /* If we have rank 1 parameters, zero the absent stride, and set the size to one. */ if (GFC_DESCRIPTOR_RANK (a) == 1) { - astride = GFC_DESCRIPTOR_STRIDE_BYTES(a,0); + astride = GFC_DESCRIPTOR_SM(a,0); count = GFC_DESCRIPTOR_EXTENT(a,0); xstride = 0; rxstride = 0; @@ -183,14 +184,14 @@ matmul_l4 (gfc_array_l4 * const restrict retarray, } else { - astride = GFC_DESCRIPTOR_STRIDE_BYTES(a,1); + astride = GFC_DESCRIPTOR_SM(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); - xstride = GFC_DESCRIPTOR_STRIDE_BYTES(a,0); + xstride = GFC_DESCRIPTOR_SM(a,0); xcount = GFC_DESCRIPTOR_EXTENT(a,0); } if (GFC_DESCRIPTOR_RANK (b) == 1) { - bstride = GFC_DESCRIPTOR_STRIDE_BYTES(b,0); + bstride = GFC_DESCRIPTOR_SM(b,0); assert(count == GFC_DESCRIPTOR_EXTENT(b,0)); ystride = 0; rystride = 0; @@ -198,9 +199,9 @@ matmul_l4 (gfc_array_l4 * const restrict retarray, } else { - bstride = GFC_DESCRIPTOR_STRIDE_BYTES(b,0); + bstride = GFC_DESCRIPTOR_SM(b,0); assert(count == GFC_DESCRIPTOR_EXTENT(b,0)); - ystride = GFC_DESCRIPTOR_STRIDE_BYTES(b,1); + ystride = GFC_DESCRIPTOR_SM(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_l8.c b/libgfortran/generated/matmul_l8.c index 5862c8d870c..bff2852166b 100644 --- a/libgfortran/generated/matmul_l8.c +++ b/libgfortran/generated/matmul_l8.c @@ -69,22 +69,23 @@ matmul_l8 (gfc_array_l8 * const restrict retarray, { if (GFC_DESCRIPTOR_RANK (a) == 1) { - GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DIMENSION_SET (retarray->dim[0], 0, + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_LOGICAL_8)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { - GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DIMENSION_SET (retarray->dim[0], 0, + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_LOGICAL_8)); } else { - GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DIMENSION_SET (retarray->dim[0], 0, + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_LOGICAL_8)); - GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DIMENSION_SET (retarray->dim[1], 0, + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_LOGICAL_8)); } retarray->base_addr @@ -134,7 +135,7 @@ matmul_l8 (gfc_array_l8 * const restrict retarray, } abase = a->base_addr; - a_kind = GFC_DESCRIPTOR_SIZE (a); + a_kind = GFC_DESCRIPTOR_ELEM_LEN (a); if (a_kind == 1 || a_kind == 2 || a_kind == 4 || a_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -146,7 +147,7 @@ matmul_l8 (gfc_array_l8 * const restrict retarray, internal_error (NULL, "Funny sized logical array"); bbase = b->base_addr; - b_kind = GFC_DESCRIPTOR_SIZE (b); + b_kind = GFC_DESCRIPTOR_ELEM_LEN (b); if (b_kind == 1 || b_kind == 2 || b_kind == 4 || b_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -162,20 +163,20 @@ matmul_l8 (gfc_array_l8 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (retarray) == 1) { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); rystride = rxstride; } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } /* If we have rank 1 parameters, zero the absent stride, and set the size to one. */ if (GFC_DESCRIPTOR_RANK (a) == 1) { - astride = GFC_DESCRIPTOR_STRIDE_BYTES(a,0); + astride = GFC_DESCRIPTOR_SM(a,0); count = GFC_DESCRIPTOR_EXTENT(a,0); xstride = 0; rxstride = 0; @@ -183,14 +184,14 @@ matmul_l8 (gfc_array_l8 * const restrict retarray, } else { - astride = GFC_DESCRIPTOR_STRIDE_BYTES(a,1); + astride = GFC_DESCRIPTOR_SM(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); - xstride = GFC_DESCRIPTOR_STRIDE_BYTES(a,0); + xstride = GFC_DESCRIPTOR_SM(a,0); xcount = GFC_DESCRIPTOR_EXTENT(a,0); } if (GFC_DESCRIPTOR_RANK (b) == 1) { - bstride = GFC_DESCRIPTOR_STRIDE_BYTES(b,0); + bstride = GFC_DESCRIPTOR_SM(b,0); assert(count == GFC_DESCRIPTOR_EXTENT(b,0)); ystride = 0; rystride = 0; @@ -198,9 +199,9 @@ matmul_l8 (gfc_array_l8 * const restrict retarray, } else { - bstride = GFC_DESCRIPTOR_STRIDE_BYTES(b,0); + bstride = GFC_DESCRIPTOR_SM(b,0); assert(count == GFC_DESCRIPTOR_EXTENT(b,0)); - ystride = GFC_DESCRIPTOR_STRIDE_BYTES(b,1); + ystride = GFC_DESCRIPTOR_SM(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_r10.c b/libgfortran/generated/matmul_r10.c index 6c9656adfda..9959f6a9977 100644 --- a/libgfortran/generated/matmul_r10.c +++ b/libgfortran/generated/matmul_r10.c @@ -106,21 +106,22 @@ matmul_r10 (gfc_array_r10 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_REAL_10)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_10)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_10)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_REAL_10)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_r10 (gfc_array_r10 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_r10 (gfc_array_r10 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_r10 (gfc_array_r10 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_r10 (gfc_array_r10 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_r16.c b/libgfortran/generated/matmul_r16.c index fbe8e092884..bc43ca21291 100644 --- a/libgfortran/generated/matmul_r16.c +++ b/libgfortran/generated/matmul_r16.c @@ -106,21 +106,22 @@ matmul_r16 (gfc_array_r16 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_REAL_16)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_16)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_16)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_REAL_16)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_r16 (gfc_array_r16 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_r16 (gfc_array_r16 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_r16 (gfc_array_r16 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_r16 (gfc_array_r16 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_r4.c b/libgfortran/generated/matmul_r4.c index f80c8bfcd2f..8fd3849b726 100644 --- a/libgfortran/generated/matmul_r4.c +++ b/libgfortran/generated/matmul_r4.c @@ -106,21 +106,22 @@ matmul_r4 (gfc_array_r4 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_REAL_4)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_4)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_4)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_REAL_4)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_r4 (gfc_array_r4 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_r4 (gfc_array_r4 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_r4 (gfc_array_r4 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_r4 (gfc_array_r4 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/matmul_r8.c b/libgfortran/generated/matmul_r8.c index 7aec3b3c2af..ca7adb309aa 100644 --- a/libgfortran/generated/matmul_r8.c +++ b/libgfortran/generated/matmul_r8.c @@ -106,21 +106,22 @@ matmul_r8 (gfc_array_r8 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (a) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, 1); + GFC_DESCRIPTOR_EXTENT(b,1), sizeof (GFC_REAL_8)); } else if (GFC_DESCRIPTOR_RANK (b) == 1) { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_8)); } else { GFC_DIMENSION_SET(retarray->dim[0], 0, - GFC_DESCRIPTOR_EXTENT(a,0) - 1, 1); + GFC_DESCRIPTOR_EXTENT(a,0), sizeof (GFC_REAL_8)); GFC_DIMENSION_SET(retarray->dim[1], 0, - GFC_DESCRIPTOR_EXTENT(b,1) - 1, - GFC_DESCRIPTOR_EXTENT(retarray,0)); + GFC_DESCRIPTOR_EXTENT(b,1), + GFC_DESCRIPTOR_EXTENT(retarray,0) + * sizeof (GFC_REAL_8)); } retarray->base_addr @@ -175,19 +176,19 @@ matmul_r8 (gfc_array_r8 * const restrict retarray, /* One-dimensional result may be addressed in the code below either as a row or a column matrix. We want both cases to work. */ - rxstride = rystride = GFC_DESCRIPTOR_STRIDE(retarray,0); + rxstride = rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); } else { - rxstride = GFC_DESCRIPTOR_STRIDE(retarray,0); - rystride = GFC_DESCRIPTOR_STRIDE(retarray,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,1); } if (GFC_DESCRIPTOR_RANK (a) == 1) { /* Treat it as a a row matrix A[1,count]. */ - axstride = GFC_DESCRIPTOR_STRIDE(a,0); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); aystride = 1; xcount = 1; @@ -195,8 +196,8 @@ matmul_r8 (gfc_array_r8 * const restrict retarray, } else { - axstride = GFC_DESCRIPTOR_STRIDE(a,0); - aystride = GFC_DESCRIPTOR_STRIDE(a,1); + axstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,0); + aystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(a,1); count = GFC_DESCRIPTOR_EXTENT(a,1); xcount = GFC_DESCRIPTOR_EXTENT(a,0); @@ -211,7 +212,7 @@ matmul_r8 (gfc_array_r8 * const restrict retarray, if (GFC_DESCRIPTOR_RANK (b) == 1) { /* Treat it as a column matrix B[count,1] */ - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); /* bystride should never be used for 1-dimensional b. in case it is we want it to cause a segfault, rather than @@ -221,8 +222,8 @@ matmul_r8 (gfc_array_r8 * const restrict retarray, } else { - bxstride = GFC_DESCRIPTOR_STRIDE(b,0); - bystride = GFC_DESCRIPTOR_STRIDE(b,1); + bxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,0); + bystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(b,1); ycount = GFC_DESCRIPTOR_EXTENT(b,1); } diff --git a/libgfortran/generated/maxloc0_16_i1.c b/libgfortran/generated/maxloc0_16_i1.c index d205d24667c..792f59fb683 100644 --- a/libgfortran/generated/maxloc0_16_i1.c +++ b/libgfortran/generated/maxloc0_16_i1.c @@ -55,8 +55,9 @@ maxloc0_16_i1 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ maxloc0_16_i1 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_16_i1 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mmaxloc0_16_i1 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_16_i1 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_16_i1 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ smaxloc0_16_i1 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_16_i16.c b/libgfortran/generated/maxloc0_16_i16.c index 3d8e3dc0fd7..6e35ac7c6f0 100644 --- a/libgfortran/generated/maxloc0_16_i16.c +++ b/libgfortran/generated/maxloc0_16_i16.c @@ -55,8 +55,9 @@ maxloc0_16_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ maxloc0_16_i16 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_16_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mmaxloc0_16_i16 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_16_i16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_16_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ smaxloc0_16_i16 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_16_i2.c b/libgfortran/generated/maxloc0_16_i2.c index 93f5cc47732..eaeeab93f58 100644 --- a/libgfortran/generated/maxloc0_16_i2.c +++ b/libgfortran/generated/maxloc0_16_i2.c @@ -55,8 +55,9 @@ maxloc0_16_i2 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ maxloc0_16_i2 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_16_i2 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mmaxloc0_16_i2 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_16_i2 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_16_i2 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ smaxloc0_16_i2 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_16_i4.c b/libgfortran/generated/maxloc0_16_i4.c index 6858c8ff7fd..5d8acb0e72b 100644 --- a/libgfortran/generated/maxloc0_16_i4.c +++ b/libgfortran/generated/maxloc0_16_i4.c @@ -55,8 +55,9 @@ maxloc0_16_i4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ maxloc0_16_i4 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_16_i4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mmaxloc0_16_i4 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_16_i4 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_16_i4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ smaxloc0_16_i4 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_16_i8.c b/libgfortran/generated/maxloc0_16_i8.c index f324b02fc3a..cd315741ffd 100644 --- a/libgfortran/generated/maxloc0_16_i8.c +++ b/libgfortran/generated/maxloc0_16_i8.c @@ -55,8 +55,9 @@ maxloc0_16_i8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ maxloc0_16_i8 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_16_i8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mmaxloc0_16_i8 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_16_i8 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_16_i8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ smaxloc0_16_i8 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_16_r10.c b/libgfortran/generated/maxloc0_16_r10.c index 03560f711f0..089e751dc8a 100644 --- a/libgfortran/generated/maxloc0_16_r10.c +++ b/libgfortran/generated/maxloc0_16_r10.c @@ -55,8 +55,9 @@ maxloc0_16_r10 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ maxloc0_16_r10 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_16_r10 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mmaxloc0_16_r10 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_16_r10 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_16_r10 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ smaxloc0_16_r10 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_16_r16.c b/libgfortran/generated/maxloc0_16_r16.c index aeb2e81d2c8..1c423e7847b 100644 --- a/libgfortran/generated/maxloc0_16_r16.c +++ b/libgfortran/generated/maxloc0_16_r16.c @@ -55,8 +55,9 @@ maxloc0_16_r16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ maxloc0_16_r16 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_16_r16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mmaxloc0_16_r16 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_16_r16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_16_r16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ smaxloc0_16_r16 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_16_r4.c b/libgfortran/generated/maxloc0_16_r4.c index a88774e954b..28ae3829f95 100644 --- a/libgfortran/generated/maxloc0_16_r4.c +++ b/libgfortran/generated/maxloc0_16_r4.c @@ -55,8 +55,9 @@ maxloc0_16_r4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ maxloc0_16_r4 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_16_r4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mmaxloc0_16_r4 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_16_r4 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_16_r4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ smaxloc0_16_r4 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_16_r8.c b/libgfortran/generated/maxloc0_16_r8.c index 8704cad65cb..0f17f337882 100644 --- a/libgfortran/generated/maxloc0_16_r8.c +++ b/libgfortran/generated/maxloc0_16_r8.c @@ -55,8 +55,9 @@ maxloc0_16_r8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ maxloc0_16_r8 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_16_r8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mmaxloc0_16_r8 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_16_r8 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_16_r8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ smaxloc0_16_r8 (gfc_array_i16 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_4_i1.c b/libgfortran/generated/maxloc0_4_i1.c index 8e75ec977af..63f8564d8f3 100644 --- a/libgfortran/generated/maxloc0_4_i1.c +++ b/libgfortran/generated/maxloc0_4_i1.c @@ -55,8 +55,9 @@ maxloc0_4_i1 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ maxloc0_4_i1 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_4_i1 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mmaxloc0_4_i1 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_4_i1 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_4_i1 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ smaxloc0_4_i1 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_4_i16.c b/libgfortran/generated/maxloc0_4_i16.c index 67383b6c5b0..053fd05fb34 100644 --- a/libgfortran/generated/maxloc0_4_i16.c +++ b/libgfortran/generated/maxloc0_4_i16.c @@ -55,8 +55,9 @@ maxloc0_4_i16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ maxloc0_4_i16 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_4_i16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mmaxloc0_4_i16 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_4_i16 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_4_i16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ smaxloc0_4_i16 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_4_i2.c b/libgfortran/generated/maxloc0_4_i2.c index 3991bd6b240..e0ee681f04d 100644 --- a/libgfortran/generated/maxloc0_4_i2.c +++ b/libgfortran/generated/maxloc0_4_i2.c @@ -55,8 +55,9 @@ maxloc0_4_i2 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ maxloc0_4_i2 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_4_i2 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mmaxloc0_4_i2 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_4_i2 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_4_i2 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ smaxloc0_4_i2 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_4_i4.c b/libgfortran/generated/maxloc0_4_i4.c index 0a714c3c182..ad793633f9b 100644 --- a/libgfortran/generated/maxloc0_4_i4.c +++ b/libgfortran/generated/maxloc0_4_i4.c @@ -55,8 +55,9 @@ maxloc0_4_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ maxloc0_4_i4 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_4_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mmaxloc0_4_i4 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_4_i4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_4_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ smaxloc0_4_i4 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_4_i8.c b/libgfortran/generated/maxloc0_4_i8.c index c32c6fb4f9f..335ad26f815 100644 --- a/libgfortran/generated/maxloc0_4_i8.c +++ b/libgfortran/generated/maxloc0_4_i8.c @@ -55,8 +55,9 @@ maxloc0_4_i8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ maxloc0_4_i8 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_4_i8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mmaxloc0_4_i8 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_4_i8 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_4_i8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ smaxloc0_4_i8 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_4_r10.c b/libgfortran/generated/maxloc0_4_r10.c index d2d7f2ef7f1..54701204074 100644 --- a/libgfortran/generated/maxloc0_4_r10.c +++ b/libgfortran/generated/maxloc0_4_r10.c @@ -55,8 +55,9 @@ maxloc0_4_r10 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ maxloc0_4_r10 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_4_r10 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mmaxloc0_4_r10 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_4_r10 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_4_r10 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ smaxloc0_4_r10 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_4_r16.c b/libgfortran/generated/maxloc0_4_r16.c index e9d8620f0a5..60352e19f17 100644 --- a/libgfortran/generated/maxloc0_4_r16.c +++ b/libgfortran/generated/maxloc0_4_r16.c @@ -55,8 +55,9 @@ maxloc0_4_r16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ maxloc0_4_r16 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_4_r16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mmaxloc0_4_r16 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_4_r16 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_4_r16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ smaxloc0_4_r16 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_4_r4.c b/libgfortran/generated/maxloc0_4_r4.c index c402868def7..af9f83bb909 100644 --- a/libgfortran/generated/maxloc0_4_r4.c +++ b/libgfortran/generated/maxloc0_4_r4.c @@ -55,8 +55,9 @@ maxloc0_4_r4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ maxloc0_4_r4 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_4_r4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mmaxloc0_4_r4 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_4_r4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_4_r4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ smaxloc0_4_r4 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_4_r8.c b/libgfortran/generated/maxloc0_4_r8.c index 5057e9c34a7..2c70d47f440 100644 --- a/libgfortran/generated/maxloc0_4_r8.c +++ b/libgfortran/generated/maxloc0_4_r8.c @@ -55,8 +55,9 @@ maxloc0_4_r8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ maxloc0_4_r8 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_4_r8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mmaxloc0_4_r8 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_4_r8 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_4_r8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ smaxloc0_4_r8 (gfc_array_i4 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_8_i1.c b/libgfortran/generated/maxloc0_8_i1.c index 95d027dbd32..341fadb8b16 100644 --- a/libgfortran/generated/maxloc0_8_i1.c +++ b/libgfortran/generated/maxloc0_8_i1.c @@ -55,8 +55,9 @@ maxloc0_8_i1 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ maxloc0_8_i1 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_8_i1 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mmaxloc0_8_i1 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_8_i1 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_8_i1 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ smaxloc0_8_i1 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_8_i16.c b/libgfortran/generated/maxloc0_8_i16.c index 1fa391b1165..5d4d978b64c 100644 --- a/libgfortran/generated/maxloc0_8_i16.c +++ b/libgfortran/generated/maxloc0_8_i16.c @@ -55,8 +55,9 @@ maxloc0_8_i16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ maxloc0_8_i16 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_8_i16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mmaxloc0_8_i16 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_8_i16 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_8_i16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ smaxloc0_8_i16 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_8_i2.c b/libgfortran/generated/maxloc0_8_i2.c index d98a1a25adf..1a19a1fd1db 100644 --- a/libgfortran/generated/maxloc0_8_i2.c +++ b/libgfortran/generated/maxloc0_8_i2.c @@ -55,8 +55,9 @@ maxloc0_8_i2 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ maxloc0_8_i2 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_8_i2 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mmaxloc0_8_i2 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_8_i2 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_8_i2 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ smaxloc0_8_i2 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_8_i4.c b/libgfortran/generated/maxloc0_8_i4.c index 56a77487fa0..d3745aa8b6e 100644 --- a/libgfortran/generated/maxloc0_8_i4.c +++ b/libgfortran/generated/maxloc0_8_i4.c @@ -55,8 +55,9 @@ maxloc0_8_i4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ maxloc0_8_i4 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_8_i4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mmaxloc0_8_i4 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_8_i4 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_8_i4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ smaxloc0_8_i4 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_8_i8.c b/libgfortran/generated/maxloc0_8_i8.c index dd1fe2c56f4..4ac8ff5fc5c 100644 --- a/libgfortran/generated/maxloc0_8_i8.c +++ b/libgfortran/generated/maxloc0_8_i8.c @@ -55,8 +55,9 @@ maxloc0_8_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ maxloc0_8_i8 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_8_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mmaxloc0_8_i8 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_8_i8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_8_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ smaxloc0_8_i8 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_8_r10.c b/libgfortran/generated/maxloc0_8_r10.c index 2c8394cefa6..8bd4d257182 100644 --- a/libgfortran/generated/maxloc0_8_r10.c +++ b/libgfortran/generated/maxloc0_8_r10.c @@ -55,8 +55,9 @@ maxloc0_8_r10 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ maxloc0_8_r10 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_8_r10 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mmaxloc0_8_r10 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_8_r10 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_8_r10 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ smaxloc0_8_r10 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_8_r16.c b/libgfortran/generated/maxloc0_8_r16.c index 4ebf6f4738b..33068477d23 100644 --- a/libgfortran/generated/maxloc0_8_r16.c +++ b/libgfortran/generated/maxloc0_8_r16.c @@ -55,8 +55,9 @@ maxloc0_8_r16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ maxloc0_8_r16 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_8_r16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mmaxloc0_8_r16 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_8_r16 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_8_r16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ smaxloc0_8_r16 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_8_r4.c b/libgfortran/generated/maxloc0_8_r4.c index 893adadd7fd..7abef9f34a9 100644 --- a/libgfortran/generated/maxloc0_8_r4.c +++ b/libgfortran/generated/maxloc0_8_r4.c @@ -55,8 +55,9 @@ maxloc0_8_r4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ maxloc0_8_r4 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_8_r4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mmaxloc0_8_r4 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_8_r4 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_8_r4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ smaxloc0_8_r4 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc0_8_r8.c b/libgfortran/generated/maxloc0_8_r8.c index e2343430a2e..9d163d6ddaa 100644 --- a/libgfortran/generated/maxloc0_8_r8.c +++ b/libgfortran/generated/maxloc0_8_r8.c @@ -55,8 +55,9 @@ maxloc0_8_r8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ maxloc0_8_r8 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mmaxloc0_8_r8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mmaxloc0_8_r8 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mmaxloc0_8_r8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ smaxloc0_8_r8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ smaxloc0_8_r8 (gfc_array_i8 * const restrict retarray, "MAXLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/maxloc1_16_i1.c b/libgfortran/generated/maxloc1_16_i1.c index 4d1bea09c7c..4bae2d2e0db 100644 --- a/libgfortran/generated/maxloc1_16_i1.c +++ b/libgfortran/generated/maxloc1_16_i1.c @@ -61,11 +61,11 @@ maxloc1_16_i1 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_16_i1 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_16_i1 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_16_i1 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_16_i1 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_16_i1 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_16_i16.c b/libgfortran/generated/maxloc1_16_i16.c index eb9b2a0cd62..03d3198c7f9 100644 --- a/libgfortran/generated/maxloc1_16_i16.c +++ b/libgfortran/generated/maxloc1_16_i16.c @@ -61,11 +61,11 @@ maxloc1_16_i16 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_16_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_16_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_16_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_16_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_16_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_16_i2.c b/libgfortran/generated/maxloc1_16_i2.c index 91a0800a7ba..d2acb3775a5 100644 --- a/libgfortran/generated/maxloc1_16_i2.c +++ b/libgfortran/generated/maxloc1_16_i2.c @@ -61,11 +61,11 @@ maxloc1_16_i2 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_16_i2 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_16_i2 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_16_i2 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_16_i2 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_16_i2 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_16_i4.c b/libgfortran/generated/maxloc1_16_i4.c index c680351674d..cd1650135ec 100644 --- a/libgfortran/generated/maxloc1_16_i4.c +++ b/libgfortran/generated/maxloc1_16_i4.c @@ -61,11 +61,11 @@ maxloc1_16_i4 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_16_i4 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_16_i4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_16_i4 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_16_i4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_16_i4 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_16_i8.c b/libgfortran/generated/maxloc1_16_i8.c index ea164dc6b3a..0584bf38bba 100644 --- a/libgfortran/generated/maxloc1_16_i8.c +++ b/libgfortran/generated/maxloc1_16_i8.c @@ -61,11 +61,11 @@ maxloc1_16_i8 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_16_i8 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_16_i8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_16_i8 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_16_i8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_16_i8 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_16_r10.c b/libgfortran/generated/maxloc1_16_r10.c index 4d5ed45a5f4..3c01efb2d6f 100644 --- a/libgfortran/generated/maxloc1_16_r10.c +++ b/libgfortran/generated/maxloc1_16_r10.c @@ -61,11 +61,11 @@ maxloc1_16_r10 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_16_r10 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_16_r10 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_16_r10 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_16_r10 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_16_r10 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_16_r16.c b/libgfortran/generated/maxloc1_16_r16.c index 572d91617a1..18fee74173d 100644 --- a/libgfortran/generated/maxloc1_16_r16.c +++ b/libgfortran/generated/maxloc1_16_r16.c @@ -61,11 +61,11 @@ maxloc1_16_r16 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_16_r16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_16_r16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_16_r16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_16_r16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_16_r16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_16_r4.c b/libgfortran/generated/maxloc1_16_r4.c index d9aef3e63b8..c268600c67b 100644 --- a/libgfortran/generated/maxloc1_16_r4.c +++ b/libgfortran/generated/maxloc1_16_r4.c @@ -61,11 +61,11 @@ maxloc1_16_r4 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_16_r4 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_16_r4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_16_r4 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_16_r4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_16_r4 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_16_r8.c b/libgfortran/generated/maxloc1_16_r8.c index d1014cdb07d..b3d5141b64f 100644 --- a/libgfortran/generated/maxloc1_16_r8.c +++ b/libgfortran/generated/maxloc1_16_r8.c @@ -61,11 +61,11 @@ maxloc1_16_r8 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_16_r8 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_16_r8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_16_r8 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_16_r8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_16_r8 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_4_i1.c b/libgfortran/generated/maxloc1_4_i1.c index 1ab44ab6b0e..678181b7e3e 100644 --- a/libgfortran/generated/maxloc1_4_i1.c +++ b/libgfortran/generated/maxloc1_4_i1.c @@ -61,11 +61,11 @@ maxloc1_4_i1 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_4_i1 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_4_i1 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_4_i1 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_4_i1 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_4_i1 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_4_i16.c b/libgfortran/generated/maxloc1_4_i16.c index 59bb2a31e39..4f468836fc1 100644 --- a/libgfortran/generated/maxloc1_4_i16.c +++ b/libgfortran/generated/maxloc1_4_i16.c @@ -61,11 +61,11 @@ maxloc1_4_i16 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_4_i16 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_4_i16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_4_i16 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_4_i16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_4_i16 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_4_i2.c b/libgfortran/generated/maxloc1_4_i2.c index 794fde04d12..89df835d7a3 100644 --- a/libgfortran/generated/maxloc1_4_i2.c +++ b/libgfortran/generated/maxloc1_4_i2.c @@ -61,11 +61,11 @@ maxloc1_4_i2 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_4_i2 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_4_i2 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_4_i2 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_4_i2 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_4_i2 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_4_i4.c b/libgfortran/generated/maxloc1_4_i4.c index d10e937365a..86cb7ea74c1 100644 --- a/libgfortran/generated/maxloc1_4_i4.c +++ b/libgfortran/generated/maxloc1_4_i4.c @@ -61,11 +61,11 @@ maxloc1_4_i4 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_4_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_4_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_4_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_4_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_4_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_4_i8.c b/libgfortran/generated/maxloc1_4_i8.c index b761b8264e1..76d5aec2c58 100644 --- a/libgfortran/generated/maxloc1_4_i8.c +++ b/libgfortran/generated/maxloc1_4_i8.c @@ -61,11 +61,11 @@ maxloc1_4_i8 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_4_i8 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_4_i8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_4_i8 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_4_i8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_4_i8 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_4_r10.c b/libgfortran/generated/maxloc1_4_r10.c index f1d522df5cf..6322e19aaf8 100644 --- a/libgfortran/generated/maxloc1_4_r10.c +++ b/libgfortran/generated/maxloc1_4_r10.c @@ -61,11 +61,11 @@ maxloc1_4_r10 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_4_r10 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_4_r10 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_4_r10 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_4_r10 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_4_r10 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_4_r16.c b/libgfortran/generated/maxloc1_4_r16.c index deaf571ba89..f2779e49cfe 100644 --- a/libgfortran/generated/maxloc1_4_r16.c +++ b/libgfortran/generated/maxloc1_4_r16.c @@ -61,11 +61,11 @@ maxloc1_4_r16 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_4_r16 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_4_r16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_4_r16 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_4_r16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_4_r16 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_4_r4.c b/libgfortran/generated/maxloc1_4_r4.c index bc644959958..b5ea02dfedf 100644 --- a/libgfortran/generated/maxloc1_4_r4.c +++ b/libgfortran/generated/maxloc1_4_r4.c @@ -61,11 +61,11 @@ maxloc1_4_r4 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_4_r4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_4_r4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_4_r4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_4_r4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_4_r4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_4_r8.c b/libgfortran/generated/maxloc1_4_r8.c index af09cb3ecec..0cb7db50d1d 100644 --- a/libgfortran/generated/maxloc1_4_r8.c +++ b/libgfortran/generated/maxloc1_4_r8.c @@ -61,11 +61,11 @@ maxloc1_4_r8 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_4_r8 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_4_r8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_4_r8 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_4_r8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_4_r8 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_8_i1.c b/libgfortran/generated/maxloc1_8_i1.c index caaabe72d40..4d0827a0d77 100644 --- a/libgfortran/generated/maxloc1_8_i1.c +++ b/libgfortran/generated/maxloc1_8_i1.c @@ -61,11 +61,11 @@ maxloc1_8_i1 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_8_i1 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_8_i1 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_8_i1 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_8_i1 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_8_i1 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_8_i16.c b/libgfortran/generated/maxloc1_8_i16.c index 384635c99e0..3f7c2edfedc 100644 --- a/libgfortran/generated/maxloc1_8_i16.c +++ b/libgfortran/generated/maxloc1_8_i16.c @@ -61,11 +61,11 @@ maxloc1_8_i16 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_8_i16 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_8_i16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_8_i16 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_8_i16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_8_i16 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_8_i2.c b/libgfortran/generated/maxloc1_8_i2.c index 731c7237e17..3be4387b8b3 100644 --- a/libgfortran/generated/maxloc1_8_i2.c +++ b/libgfortran/generated/maxloc1_8_i2.c @@ -61,11 +61,11 @@ maxloc1_8_i2 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_8_i2 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_8_i2 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_8_i2 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_8_i2 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_8_i2 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_8_i4.c b/libgfortran/generated/maxloc1_8_i4.c index 26fdf834bb3..4adf1280979 100644 --- a/libgfortran/generated/maxloc1_8_i4.c +++ b/libgfortran/generated/maxloc1_8_i4.c @@ -61,11 +61,11 @@ maxloc1_8_i4 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_8_i4 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_8_i4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_8_i4 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_8_i4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_8_i4 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_8_i8.c b/libgfortran/generated/maxloc1_8_i8.c index a7f43d15f3e..37f5609fc0c 100644 --- a/libgfortran/generated/maxloc1_8_i8.c +++ b/libgfortran/generated/maxloc1_8_i8.c @@ -61,11 +61,11 @@ maxloc1_8_i8 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_8_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_8_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_8_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_8_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_8_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_8_r10.c b/libgfortran/generated/maxloc1_8_r10.c index f996db49589..ec8040e23bf 100644 --- a/libgfortran/generated/maxloc1_8_r10.c +++ b/libgfortran/generated/maxloc1_8_r10.c @@ -61,11 +61,11 @@ maxloc1_8_r10 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_8_r10 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_8_r10 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_8_r10 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_8_r10 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_8_r10 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_8_r16.c b/libgfortran/generated/maxloc1_8_r16.c index d3ae5cb36bd..c5e85b1f499 100644 --- a/libgfortran/generated/maxloc1_8_r16.c +++ b/libgfortran/generated/maxloc1_8_r16.c @@ -61,11 +61,11 @@ maxloc1_8_r16 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_8_r16 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_8_r16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_8_r16 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_8_r16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_8_r16 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_8_r4.c b/libgfortran/generated/maxloc1_8_r4.c index c282cf7035d..ad0fa1dd566 100644 --- a/libgfortran/generated/maxloc1_8_r4.c +++ b/libgfortran/generated/maxloc1_8_r4.c @@ -61,11 +61,11 @@ maxloc1_8_r4 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_8_r4 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_8_r4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_8_r4 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_8_r4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_8_r4 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxloc1_8_r8.c b/libgfortran/generated/maxloc1_8_r8.c index 13446e0708b..5b9ecf7b691 100644 --- a/libgfortran/generated/maxloc1_8_r8.c +++ b/libgfortran/generated/maxloc1_8_r8.c @@ -61,11 +61,11 @@ maxloc1_8_r8 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ maxloc1_8_r8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ maxloc1_8_r8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ maxloc1_8_r8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ smaxloc1_8_r8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ smaxloc1_8_r8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxval_i1.c b/libgfortran/generated/maxval_i1.c index eadec5ce9fd..708a6b4cd7b 100644 --- a/libgfortran/generated/maxval_i1.c +++ b/libgfortran/generated/maxval_i1.c @@ -60,11 +60,11 @@ maxval_i1 (gfc_array_i1 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ maxval_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ maxval_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1)); if (alloc_size == 0) @@ -124,7 +125,7 @@ maxval_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mmaxval_i1 (gfc_array_i1 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mmaxval_i1 (gfc_array_i1 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mmaxval_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mmaxval_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mmaxval_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ smaxval_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ smaxval_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxval_i16.c b/libgfortran/generated/maxval_i16.c index b83dd181e76..803949c151f 100644 --- a/libgfortran/generated/maxval_i16.c +++ b/libgfortran/generated/maxval_i16.c @@ -60,11 +60,11 @@ maxval_i16 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ maxval_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ maxval_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ maxval_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mmaxval_i16 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mmaxval_i16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mmaxval_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mmaxval_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mmaxval_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ smaxval_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ smaxval_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxval_i2.c b/libgfortran/generated/maxval_i2.c index 72bb3b4dda0..e77ab736b1f 100644 --- a/libgfortran/generated/maxval_i2.c +++ b/libgfortran/generated/maxval_i2.c @@ -60,11 +60,11 @@ maxval_i2 (gfc_array_i2 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ maxval_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ maxval_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2)); if (alloc_size == 0) @@ -124,7 +125,7 @@ maxval_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mmaxval_i2 (gfc_array_i2 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mmaxval_i2 (gfc_array_i2 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mmaxval_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mmaxval_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mmaxval_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ smaxval_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ smaxval_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxval_i4.c b/libgfortran/generated/maxval_i4.c index c939a0acd43..29a8c793de9 100644 --- a/libgfortran/generated/maxval_i4.c +++ b/libgfortran/generated/maxval_i4.c @@ -60,11 +60,11 @@ maxval_i4 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ maxval_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ maxval_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ maxval_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mmaxval_i4 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mmaxval_i4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mmaxval_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mmaxval_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mmaxval_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ smaxval_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ smaxval_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxval_i8.c b/libgfortran/generated/maxval_i8.c index 50ee398d289..11de2b01db0 100644 --- a/libgfortran/generated/maxval_i8.c +++ b/libgfortran/generated/maxval_i8.c @@ -60,11 +60,11 @@ maxval_i8 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ maxval_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ maxval_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ maxval_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mmaxval_i8 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mmaxval_i8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mmaxval_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mmaxval_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mmaxval_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ smaxval_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ smaxval_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxval_r10.c b/libgfortran/generated/maxval_r10.c index b16d2634159..0571233f958 100644 --- a/libgfortran/generated/maxval_r10.c +++ b/libgfortran/generated/maxval_r10.c @@ -60,11 +60,11 @@ maxval_r10 (gfc_array_r10 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ maxval_r10 (gfc_array_r10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ maxval_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_10)); if (alloc_size == 0) @@ -124,7 +125,7 @@ maxval_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mmaxval_r10 (gfc_array_r10 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mmaxval_r10 (gfc_array_r10 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mmaxval_r10 (gfc_array_r10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mmaxval_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mmaxval_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ smaxval_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ smaxval_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxval_r16.c b/libgfortran/generated/maxval_r16.c index df6f2b088e9..aef3064eae9 100644 --- a/libgfortran/generated/maxval_r16.c +++ b/libgfortran/generated/maxval_r16.c @@ -60,11 +60,11 @@ maxval_r16 (gfc_array_r16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ maxval_r16 (gfc_array_r16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ maxval_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ maxval_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mmaxval_r16 (gfc_array_r16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mmaxval_r16 (gfc_array_r16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mmaxval_r16 (gfc_array_r16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mmaxval_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mmaxval_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ smaxval_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ smaxval_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxval_r4.c b/libgfortran/generated/maxval_r4.c index edccaeb6567..d82e44bc6f9 100644 --- a/libgfortran/generated/maxval_r4.c +++ b/libgfortran/generated/maxval_r4.c @@ -60,11 +60,11 @@ maxval_r4 (gfc_array_r4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ maxval_r4 (gfc_array_r4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ maxval_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ maxval_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mmaxval_r4 (gfc_array_r4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mmaxval_r4 (gfc_array_r4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mmaxval_r4 (gfc_array_r4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mmaxval_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mmaxval_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ smaxval_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ smaxval_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/maxval_r8.c b/libgfortran/generated/maxval_r8.c index bfbfa981dde..070f87b281a 100644 --- a/libgfortran/generated/maxval_r8.c +++ b/libgfortran/generated/maxval_r8.c @@ -60,11 +60,11 @@ maxval_r8 (gfc_array_r8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ maxval_r8 (gfc_array_r8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ maxval_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ maxval_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mmaxval_r8 (gfc_array_r8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mmaxval_r8 (gfc_array_r8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mmaxval_r8 (gfc_array_r8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mmaxval_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mmaxval_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ smaxval_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ smaxval_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc0_16_i1.c b/libgfortran/generated/minloc0_16_i1.c index ccd89f043a4..d74b3f7d60b 100644 --- a/libgfortran/generated/minloc0_16_i1.c +++ b/libgfortran/generated/minloc0_16_i1.c @@ -55,8 +55,9 @@ minloc0_16_i1 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ minloc0_16_i1 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_16_i1 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mminloc0_16_i1 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_16_i1 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_16_i1 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ sminloc0_16_i1 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_16_i16.c b/libgfortran/generated/minloc0_16_i16.c index 65050b9843c..5ae2f39bf92 100644 --- a/libgfortran/generated/minloc0_16_i16.c +++ b/libgfortran/generated/minloc0_16_i16.c @@ -55,8 +55,9 @@ minloc0_16_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ minloc0_16_i16 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_16_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mminloc0_16_i16 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_16_i16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_16_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ sminloc0_16_i16 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_16_i2.c b/libgfortran/generated/minloc0_16_i2.c index 9fb63255e3a..8e9df536c36 100644 --- a/libgfortran/generated/minloc0_16_i2.c +++ b/libgfortran/generated/minloc0_16_i2.c @@ -55,8 +55,9 @@ minloc0_16_i2 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ minloc0_16_i2 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_16_i2 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mminloc0_16_i2 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_16_i2 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_16_i2 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ sminloc0_16_i2 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_16_i4.c b/libgfortran/generated/minloc0_16_i4.c index 999ac4b50c6..d626e812399 100644 --- a/libgfortran/generated/minloc0_16_i4.c +++ b/libgfortran/generated/minloc0_16_i4.c @@ -55,8 +55,9 @@ minloc0_16_i4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ minloc0_16_i4 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_16_i4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mminloc0_16_i4 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_16_i4 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_16_i4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ sminloc0_16_i4 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_16_i8.c b/libgfortran/generated/minloc0_16_i8.c index 3c2e3c3a9b3..bf611b6b3c2 100644 --- a/libgfortran/generated/minloc0_16_i8.c +++ b/libgfortran/generated/minloc0_16_i8.c @@ -55,8 +55,9 @@ minloc0_16_i8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ minloc0_16_i8 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_16_i8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mminloc0_16_i8 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_16_i8 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_16_i8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ sminloc0_16_i8 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_16_r10.c b/libgfortran/generated/minloc0_16_r10.c index c661cdc0f6c..fa6bc79aa84 100644 --- a/libgfortran/generated/minloc0_16_r10.c +++ b/libgfortran/generated/minloc0_16_r10.c @@ -55,8 +55,9 @@ minloc0_16_r10 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ minloc0_16_r10 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_16_r10 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mminloc0_16_r10 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_16_r10 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_16_r10 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ sminloc0_16_r10 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_16_r16.c b/libgfortran/generated/minloc0_16_r16.c index c455e92de7f..b1ae2e1d1ec 100644 --- a/libgfortran/generated/minloc0_16_r16.c +++ b/libgfortran/generated/minloc0_16_r16.c @@ -55,8 +55,9 @@ minloc0_16_r16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ minloc0_16_r16 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_16_r16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mminloc0_16_r16 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_16_r16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_16_r16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ sminloc0_16_r16 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_16_r4.c b/libgfortran/generated/minloc0_16_r4.c index 779935e4ffe..0cbe3382531 100644 --- a/libgfortran/generated/minloc0_16_r4.c +++ b/libgfortran/generated/minloc0_16_r4.c @@ -55,8 +55,9 @@ minloc0_16_r4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ minloc0_16_r4 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_16_r4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mminloc0_16_r4 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_16_r4 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_16_r4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ sminloc0_16_r4 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_16_r8.c b/libgfortran/generated/minloc0_16_r8.c index d9023767772..40f33c3af20 100644 --- a/libgfortran/generated/minloc0_16_r8.c +++ b/libgfortran/generated/minloc0_16_r8.c @@ -55,8 +55,9 @@ minloc0_16_r8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -67,11 +68,11 @@ minloc0_16_r8 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_16_r8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -213,7 +215,7 @@ mminloc0_16_r8 (gfc_array_i16 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_16_r8 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_16_r8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } @@ -375,7 +376,7 @@ sminloc0_16_r8 (gfc_array_i16 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_4_i1.c b/libgfortran/generated/minloc0_4_i1.c index a9e902dd365..6e88e0077fc 100644 --- a/libgfortran/generated/minloc0_4_i1.c +++ b/libgfortran/generated/minloc0_4_i1.c @@ -55,8 +55,9 @@ minloc0_4_i1 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ minloc0_4_i1 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_4_i1 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mminloc0_4_i1 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_4_i1 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_4_i1 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ sminloc0_4_i1 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_4_i16.c b/libgfortran/generated/minloc0_4_i16.c index 7981c28ba00..62399930b3b 100644 --- a/libgfortran/generated/minloc0_4_i16.c +++ b/libgfortran/generated/minloc0_4_i16.c @@ -55,8 +55,9 @@ minloc0_4_i16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ minloc0_4_i16 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_4_i16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mminloc0_4_i16 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_4_i16 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_4_i16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ sminloc0_4_i16 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_4_i2.c b/libgfortran/generated/minloc0_4_i2.c index 59439faa092..9f9ec121fbb 100644 --- a/libgfortran/generated/minloc0_4_i2.c +++ b/libgfortran/generated/minloc0_4_i2.c @@ -55,8 +55,9 @@ minloc0_4_i2 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ minloc0_4_i2 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_4_i2 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mminloc0_4_i2 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_4_i2 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_4_i2 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ sminloc0_4_i2 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_4_i4.c b/libgfortran/generated/minloc0_4_i4.c index 5731a43ea77..05cdab8929d 100644 --- a/libgfortran/generated/minloc0_4_i4.c +++ b/libgfortran/generated/minloc0_4_i4.c @@ -55,8 +55,9 @@ minloc0_4_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ minloc0_4_i4 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_4_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mminloc0_4_i4 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_4_i4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_4_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ sminloc0_4_i4 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_4_i8.c b/libgfortran/generated/minloc0_4_i8.c index 50b8e1612e3..b8602cad787 100644 --- a/libgfortran/generated/minloc0_4_i8.c +++ b/libgfortran/generated/minloc0_4_i8.c @@ -55,8 +55,9 @@ minloc0_4_i8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ minloc0_4_i8 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_4_i8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mminloc0_4_i8 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_4_i8 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_4_i8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ sminloc0_4_i8 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_4_r10.c b/libgfortran/generated/minloc0_4_r10.c index 2701a859f54..b30bb8633f0 100644 --- a/libgfortran/generated/minloc0_4_r10.c +++ b/libgfortran/generated/minloc0_4_r10.c @@ -55,8 +55,9 @@ minloc0_4_r10 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ minloc0_4_r10 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_4_r10 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mminloc0_4_r10 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_4_r10 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_4_r10 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ sminloc0_4_r10 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_4_r16.c b/libgfortran/generated/minloc0_4_r16.c index fca50b39ea9..721d39cdca9 100644 --- a/libgfortran/generated/minloc0_4_r16.c +++ b/libgfortran/generated/minloc0_4_r16.c @@ -55,8 +55,9 @@ minloc0_4_r16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ minloc0_4_r16 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_4_r16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mminloc0_4_r16 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_4_r16 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_4_r16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ sminloc0_4_r16 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_4_r4.c b/libgfortran/generated/minloc0_4_r4.c index 0469a5280d0..2babc439f01 100644 --- a/libgfortran/generated/minloc0_4_r4.c +++ b/libgfortran/generated/minloc0_4_r4.c @@ -55,8 +55,9 @@ minloc0_4_r4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ minloc0_4_r4 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_4_r4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mminloc0_4_r4 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_4_r4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_4_r4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ sminloc0_4_r4 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_4_r8.c b/libgfortran/generated/minloc0_4_r8.c index 7be43c4af24..ff8ff5f6cf0 100644 --- a/libgfortran/generated/minloc0_4_r8.c +++ b/libgfortran/generated/minloc0_4_r8.c @@ -55,8 +55,9 @@ minloc0_4_r8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -67,11 +68,11 @@ minloc0_4_r8 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_4_r8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -213,7 +215,7 @@ mminloc0_4_r8 (gfc_array_i4 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_4_r8 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_4_r8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } @@ -375,7 +376,7 @@ sminloc0_4_r8 (gfc_array_i4 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_8_i1.c b/libgfortran/generated/minloc0_8_i1.c index 60bfe811cdc..3c8700e4204 100644 --- a/libgfortran/generated/minloc0_8_i1.c +++ b/libgfortran/generated/minloc0_8_i1.c @@ -55,8 +55,9 @@ minloc0_8_i1 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ minloc0_8_i1 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_8_i1 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mminloc0_8_i1 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_8_i1 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_8_i1 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ sminloc0_8_i1 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_8_i16.c b/libgfortran/generated/minloc0_8_i16.c index 27ddd4f9923..945ec4c9c8f 100644 --- a/libgfortran/generated/minloc0_8_i16.c +++ b/libgfortran/generated/minloc0_8_i16.c @@ -55,8 +55,9 @@ minloc0_8_i16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ minloc0_8_i16 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_8_i16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mminloc0_8_i16 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_8_i16 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_8_i16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ sminloc0_8_i16 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_8_i2.c b/libgfortran/generated/minloc0_8_i2.c index 38a4aa64ed4..2511b339af3 100644 --- a/libgfortran/generated/minloc0_8_i2.c +++ b/libgfortran/generated/minloc0_8_i2.c @@ -55,8 +55,9 @@ minloc0_8_i2 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ minloc0_8_i2 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_8_i2 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mminloc0_8_i2 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_8_i2 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_8_i2 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ sminloc0_8_i2 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_8_i4.c b/libgfortran/generated/minloc0_8_i4.c index 5586ea9fae4..58fe1023518 100644 --- a/libgfortran/generated/minloc0_8_i4.c +++ b/libgfortran/generated/minloc0_8_i4.c @@ -55,8 +55,9 @@ minloc0_8_i4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ minloc0_8_i4 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_8_i4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mminloc0_8_i4 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_8_i4 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_8_i4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ sminloc0_8_i4 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_8_i8.c b/libgfortran/generated/minloc0_8_i8.c index 1f21d2657d9..f1bc31e2e29 100644 --- a/libgfortran/generated/minloc0_8_i8.c +++ b/libgfortran/generated/minloc0_8_i8.c @@ -55,8 +55,9 @@ minloc0_8_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ minloc0_8_i8 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_8_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mminloc0_8_i8 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_8_i8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_8_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ sminloc0_8_i8 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_8_r10.c b/libgfortran/generated/minloc0_8_r10.c index df34ca3336c..e2bf5273b7a 100644 --- a/libgfortran/generated/minloc0_8_r10.c +++ b/libgfortran/generated/minloc0_8_r10.c @@ -55,8 +55,9 @@ minloc0_8_r10 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ minloc0_8_r10 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_8_r10 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mminloc0_8_r10 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_8_r10 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_8_r10 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ sminloc0_8_r10 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_8_r16.c b/libgfortran/generated/minloc0_8_r16.c index d8769ec950e..dbe35d08cad 100644 --- a/libgfortran/generated/minloc0_8_r16.c +++ b/libgfortran/generated/minloc0_8_r16.c @@ -55,8 +55,9 @@ minloc0_8_r16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ minloc0_8_r16 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_8_r16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mminloc0_8_r16 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_8_r16 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_8_r16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ sminloc0_8_r16 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_8_r4.c b/libgfortran/generated/minloc0_8_r4.c index b8ab0c9903c..2db1a110fb3 100644 --- a/libgfortran/generated/minloc0_8_r4.c +++ b/libgfortran/generated/minloc0_8_r4.c @@ -55,8 +55,9 @@ minloc0_8_r4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ minloc0_8_r4 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_8_r4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mminloc0_8_r4 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_8_r4 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_8_r4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ sminloc0_8_r4 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc0_8_r8.c b/libgfortran/generated/minloc0_8_r8.c index ff67f1ed5e3..2a492c6f1b8 100644 --- a/libgfortran/generated/minloc0_8_r8.c +++ b/libgfortran/generated/minloc0_8_r8.c @@ -55,8 +55,9 @@ minloc0_8_r8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -67,11 +68,11 @@ minloc0_8_r8 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -196,8 +197,9 @@ mminloc0_8_r8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank - 1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); + retarray->elem_len = retarray->elem_len; + retarray->type = retarray->type; retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -213,7 +215,7 @@ mminloc0_8_r8 (gfc_array_i8 * const restrict retarray, } } - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); mbase = mask->base_addr; @@ -226,12 +228,12 @@ mminloc0_8_r8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); count[n] = 0; if (extent[n] <= 0) @@ -364,8 +366,7 @@ sminloc0_8_r8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); - retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1; + GFC_DIMENSION_SET (retarray->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); retarray->offset = 0; retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } @@ -375,7 +376,7 @@ sminloc0_8_r8 (gfc_array_i8 * const restrict retarray, "MINLOC"); } - dstride = GFC_DESCRIPTOR_STRIDE(retarray,0); + dstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,0); dest = retarray->base_addr; for (n = 0; n<rank; n++) dest[n * dstride] = 0 ; diff --git a/libgfortran/generated/minloc1_16_i1.c b/libgfortran/generated/minloc1_16_i1.c index a9b2d96b1cc..a9ef738c4f7 100644 --- a/libgfortran/generated/minloc1_16_i1.c +++ b/libgfortran/generated/minloc1_16_i1.c @@ -61,11 +61,11 @@ minloc1_16_i1 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_16_i1 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_16_i1 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_16_i1 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_16_i1 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_16_i1 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_16_i1 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_16_i1 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_16_i1 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_16_i1 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_16_i1 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_16_i16.c b/libgfortran/generated/minloc1_16_i16.c index 1e52c222033..f4b422aea62 100644 --- a/libgfortran/generated/minloc1_16_i16.c +++ b/libgfortran/generated/minloc1_16_i16.c @@ -61,11 +61,11 @@ minloc1_16_i16 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_16_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_16_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_16_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_16_i16 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_16_i16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_16_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_16_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_16_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_16_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_16_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_16_i2.c b/libgfortran/generated/minloc1_16_i2.c index 7617b9e32b5..a035ef35ef2 100644 --- a/libgfortran/generated/minloc1_16_i2.c +++ b/libgfortran/generated/minloc1_16_i2.c @@ -61,11 +61,11 @@ minloc1_16_i2 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_16_i2 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_16_i2 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_16_i2 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_16_i2 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_16_i2 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_16_i2 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_16_i2 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_16_i2 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_16_i2 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_16_i2 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_16_i4.c b/libgfortran/generated/minloc1_16_i4.c index 9729d11bce8..71140968e5b 100644 --- a/libgfortran/generated/minloc1_16_i4.c +++ b/libgfortran/generated/minloc1_16_i4.c @@ -61,11 +61,11 @@ minloc1_16_i4 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_16_i4 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_16_i4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_16_i4 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_16_i4 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_16_i4 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_16_i4 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_16_i4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_16_i4 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_16_i4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_16_i4 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_16_i8.c b/libgfortran/generated/minloc1_16_i8.c index 00421b23540..a9a1f0a571e 100644 --- a/libgfortran/generated/minloc1_16_i8.c +++ b/libgfortran/generated/minloc1_16_i8.c @@ -61,11 +61,11 @@ minloc1_16_i8 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_16_i8 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_16_i8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_16_i8 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_16_i8 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_16_i8 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_16_i8 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_16_i8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_16_i8 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_16_i8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_16_i8 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_16_r10.c b/libgfortran/generated/minloc1_16_r10.c index fb1401b9517..95f6b9263a8 100644 --- a/libgfortran/generated/minloc1_16_r10.c +++ b/libgfortran/generated/minloc1_16_r10.c @@ -61,11 +61,11 @@ minloc1_16_r10 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_16_r10 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_16_r10 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_16_r10 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_16_r10 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_16_r10 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_16_r10 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_16_r10 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_16_r10 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_16_r10 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_16_r10 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_16_r16.c b/libgfortran/generated/minloc1_16_r16.c index 031286809e6..26f7f4cfd65 100644 --- a/libgfortran/generated/minloc1_16_r16.c +++ b/libgfortran/generated/minloc1_16_r16.c @@ -61,11 +61,11 @@ minloc1_16_r16 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_16_r16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_16_r16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_16_r16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_16_r16 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_16_r16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_16_r16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_16_r16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_16_r16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_16_r16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_16_r16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_16_r4.c b/libgfortran/generated/minloc1_16_r4.c index af5b67d900b..81149b6e4b9 100644 --- a/libgfortran/generated/minloc1_16_r4.c +++ b/libgfortran/generated/minloc1_16_r4.c @@ -61,11 +61,11 @@ minloc1_16_r4 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_16_r4 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_16_r4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_16_r4 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_16_r4 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_16_r4 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_16_r4 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_16_r4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_16_r4 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_16_r4 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_16_r4 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_16_r8.c b/libgfortran/generated/minloc1_16_r8.c index dd2be3bb4de..3404c2493a9 100644 --- a/libgfortran/generated/minloc1_16_r8.c +++ b/libgfortran/generated/minloc1_16_r8.c @@ -61,11 +61,11 @@ minloc1_16_r8 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_16_r8 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_16_r8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_16_r8 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_16_r8 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_16_r8 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_16_r8 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_16_r8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_16_r8 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_16_r8 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_16_r8 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_4_i1.c b/libgfortran/generated/minloc1_4_i1.c index b0bf6efba8a..b71337b6745 100644 --- a/libgfortran/generated/minloc1_4_i1.c +++ b/libgfortran/generated/minloc1_4_i1.c @@ -61,11 +61,11 @@ minloc1_4_i1 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_4_i1 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_4_i1 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_4_i1 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_4_i1 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_4_i1 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_4_i1 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_4_i1 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_4_i1 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_4_i1 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_4_i1 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_4_i16.c b/libgfortran/generated/minloc1_4_i16.c index 882b4b41744..1fb9219ff34 100644 --- a/libgfortran/generated/minloc1_4_i16.c +++ b/libgfortran/generated/minloc1_4_i16.c @@ -61,11 +61,11 @@ minloc1_4_i16 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_4_i16 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_4_i16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_4_i16 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_4_i16 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_4_i16 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_4_i16 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_4_i16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_4_i16 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_4_i16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_4_i16 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_4_i2.c b/libgfortran/generated/minloc1_4_i2.c index 877af7a5a0c..e61bf95ab5f 100644 --- a/libgfortran/generated/minloc1_4_i2.c +++ b/libgfortran/generated/minloc1_4_i2.c @@ -61,11 +61,11 @@ minloc1_4_i2 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_4_i2 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_4_i2 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_4_i2 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_4_i2 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_4_i2 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_4_i2 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_4_i2 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_4_i2 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_4_i2 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_4_i2 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_4_i4.c b/libgfortran/generated/minloc1_4_i4.c index 3a872706d12..64cf2daa98a 100644 --- a/libgfortran/generated/minloc1_4_i4.c +++ b/libgfortran/generated/minloc1_4_i4.c @@ -61,11 +61,11 @@ minloc1_4_i4 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_4_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_4_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_4_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_4_i4 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_4_i4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_4_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_4_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_4_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_4_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_4_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_4_i8.c b/libgfortran/generated/minloc1_4_i8.c index 22e43bf6c85..ab74930c337 100644 --- a/libgfortran/generated/minloc1_4_i8.c +++ b/libgfortran/generated/minloc1_4_i8.c @@ -61,11 +61,11 @@ minloc1_4_i8 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_4_i8 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_4_i8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_4_i8 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_4_i8 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_4_i8 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_4_i8 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_4_i8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_4_i8 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_4_i8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_4_i8 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_4_r10.c b/libgfortran/generated/minloc1_4_r10.c index 624006cd694..fd0b874a90b 100644 --- a/libgfortran/generated/minloc1_4_r10.c +++ b/libgfortran/generated/minloc1_4_r10.c @@ -61,11 +61,11 @@ minloc1_4_r10 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_4_r10 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_4_r10 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_4_r10 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_4_r10 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_4_r10 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_4_r10 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_4_r10 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_4_r10 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_4_r10 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_4_r10 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_4_r16.c b/libgfortran/generated/minloc1_4_r16.c index f32b6082522..186f18b993f 100644 --- a/libgfortran/generated/minloc1_4_r16.c +++ b/libgfortran/generated/minloc1_4_r16.c @@ -61,11 +61,11 @@ minloc1_4_r16 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_4_r16 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_4_r16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_4_r16 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_4_r16 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_4_r16 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_4_r16 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_4_r16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_4_r16 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_4_r16 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_4_r16 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_4_r4.c b/libgfortran/generated/minloc1_4_r4.c index 0ed5fe96e7b..939692473ed 100644 --- a/libgfortran/generated/minloc1_4_r4.c +++ b/libgfortran/generated/minloc1_4_r4.c @@ -61,11 +61,11 @@ minloc1_4_r4 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_4_r4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_4_r4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_4_r4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_4_r4 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_4_r4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_4_r4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_4_r4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_4_r4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_4_r4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_4_r4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_4_r8.c b/libgfortran/generated/minloc1_4_r8.c index c780a42aa2e..dce1851b005 100644 --- a/libgfortran/generated/minloc1_4_r8.c +++ b/libgfortran/generated/minloc1_4_r8.c @@ -61,11 +61,11 @@ minloc1_4_r8 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_4_r8 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_4_r8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_4_r8 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_4_r8 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_4_r8 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_4_r8 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_4_r8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_4_r8 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_4_r8 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_4_r8 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_8_i1.c b/libgfortran/generated/minloc1_8_i1.c index 6f8c7d9443c..0c43c925c35 100644 --- a/libgfortran/generated/minloc1_8_i1.c +++ b/libgfortran/generated/minloc1_8_i1.c @@ -61,11 +61,11 @@ minloc1_8_i1 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_8_i1 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_8_i1 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_8_i1 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_8_i1 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_8_i1 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_8_i1 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_8_i1 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_8_i1 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_8_i1 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_8_i1 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_8_i16.c b/libgfortran/generated/minloc1_8_i16.c index 07cb01171a1..f0d218134cb 100644 --- a/libgfortran/generated/minloc1_8_i16.c +++ b/libgfortran/generated/minloc1_8_i16.c @@ -61,11 +61,11 @@ minloc1_8_i16 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_8_i16 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_8_i16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_8_i16 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_8_i16 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_8_i16 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_8_i16 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_8_i16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_8_i16 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_8_i16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_8_i16 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_8_i2.c b/libgfortran/generated/minloc1_8_i2.c index 9ea0bf4c342..fe5ffd876ec 100644 --- a/libgfortran/generated/minloc1_8_i2.c +++ b/libgfortran/generated/minloc1_8_i2.c @@ -61,11 +61,11 @@ minloc1_8_i2 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_8_i2 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_8_i2 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_8_i2 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_8_i2 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_8_i2 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_8_i2 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_8_i2 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_8_i2 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_8_i2 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_8_i2 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_8_i4.c b/libgfortran/generated/minloc1_8_i4.c index 5e433cc1dea..30097d0b307 100644 --- a/libgfortran/generated/minloc1_8_i4.c +++ b/libgfortran/generated/minloc1_8_i4.c @@ -61,11 +61,11 @@ minloc1_8_i4 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_8_i4 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_8_i4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_8_i4 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_8_i4 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_8_i4 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_8_i4 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_8_i4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_8_i4 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_8_i4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_8_i4 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_8_i8.c b/libgfortran/generated/minloc1_8_i8.c index 364cf324959..76e4c11df2a 100644 --- a/libgfortran/generated/minloc1_8_i8.c +++ b/libgfortran/generated/minloc1_8_i8.c @@ -61,11 +61,11 @@ minloc1_8_i8 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_8_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_8_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_8_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_8_i8 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_8_i8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_8_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_8_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_8_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_8_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_8_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_8_r10.c b/libgfortran/generated/minloc1_8_r10.c index 901cf91a3f6..df42b81cd5f 100644 --- a/libgfortran/generated/minloc1_8_r10.c +++ b/libgfortran/generated/minloc1_8_r10.c @@ -61,11 +61,11 @@ minloc1_8_r10 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_8_r10 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_8_r10 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_8_r10 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_8_r10 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_8_r10 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_8_r10 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_8_r10 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_8_r10 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_8_r10 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_8_r10 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_8_r16.c b/libgfortran/generated/minloc1_8_r16.c index 7bf17ea37ef..d10725402c0 100644 --- a/libgfortran/generated/minloc1_8_r16.c +++ b/libgfortran/generated/minloc1_8_r16.c @@ -61,11 +61,11 @@ minloc1_8_r16 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_8_r16 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_8_r16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_8_r16 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_8_r16 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_8_r16 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_8_r16 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_8_r16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_8_r16 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_8_r16 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_8_r16 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_8_r4.c b/libgfortran/generated/minloc1_8_r4.c index 5edb92f9958..77450ac6b52 100644 --- a/libgfortran/generated/minloc1_8_r4.c +++ b/libgfortran/generated/minloc1_8_r4.c @@ -61,11 +61,11 @@ minloc1_8_r4 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_8_r4 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_8_r4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_8_r4 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_8_r4 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_8_r4 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_8_r4 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_8_r4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_8_r4 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_8_r4 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_8_r4 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minloc1_8_r8.c b/libgfortran/generated/minloc1_8_r8.c index 405b9e1834b..ce72c0de849 100644 --- a/libgfortran/generated/minloc1_8_r8.c +++ b/libgfortran/generated/minloc1_8_r8.c @@ -61,11 +61,11 @@ minloc1_8_r8 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ minloc1_8_r8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ minloc1_8_r8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ minloc1_8_r8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -244,7 +245,7 @@ mminloc1_8_r8 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -255,13 +256,13 @@ mminloc1_8_r8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -270,8 +271,8 @@ mminloc1_8_r8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -280,23 +281,24 @@ mminloc1_8_r8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -325,7 +327,7 @@ mminloc1_8_r8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -467,23 +469,23 @@ sminloc1_8_r8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -521,7 +523,7 @@ sminloc1_8_r8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minval_i1.c b/libgfortran/generated/minval_i1.c index da7405b2830..723aa549de0 100644 --- a/libgfortran/generated/minval_i1.c +++ b/libgfortran/generated/minval_i1.c @@ -60,11 +60,11 @@ minval_i1 (gfc_array_i1 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ minval_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ minval_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1)); if (alloc_size == 0) @@ -124,7 +125,7 @@ minval_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mminval_i1 (gfc_array_i1 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mminval_i1 (gfc_array_i1 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mminval_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mminval_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mminval_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ sminval_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ sminval_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minval_i16.c b/libgfortran/generated/minval_i16.c index 11cbeac5ff6..2679fc86945 100644 --- a/libgfortran/generated/minval_i16.c +++ b/libgfortran/generated/minval_i16.c @@ -60,11 +60,11 @@ minval_i16 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ minval_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ minval_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ minval_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mminval_i16 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mminval_i16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mminval_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mminval_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mminval_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ sminval_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ sminval_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minval_i2.c b/libgfortran/generated/minval_i2.c index e208b57e2ee..b18c4331b91 100644 --- a/libgfortran/generated/minval_i2.c +++ b/libgfortran/generated/minval_i2.c @@ -60,11 +60,11 @@ minval_i2 (gfc_array_i2 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ minval_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ minval_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2)); if (alloc_size == 0) @@ -124,7 +125,7 @@ minval_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mminval_i2 (gfc_array_i2 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mminval_i2 (gfc_array_i2 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mminval_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mminval_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mminval_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ sminval_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ sminval_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minval_i4.c b/libgfortran/generated/minval_i4.c index 68ba76e8d4c..adebe0c26cd 100644 --- a/libgfortran/generated/minval_i4.c +++ b/libgfortran/generated/minval_i4.c @@ -60,11 +60,11 @@ minval_i4 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ minval_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ minval_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ minval_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mminval_i4 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mminval_i4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mminval_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mminval_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mminval_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ sminval_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ sminval_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minval_i8.c b/libgfortran/generated/minval_i8.c index b089358d048..764d4649f41 100644 --- a/libgfortran/generated/minval_i8.c +++ b/libgfortran/generated/minval_i8.c @@ -60,11 +60,11 @@ minval_i8 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ minval_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ minval_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ minval_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mminval_i8 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mminval_i8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mminval_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mminval_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mminval_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ sminval_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ sminval_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minval_r10.c b/libgfortran/generated/minval_r10.c index e9e6afee615..091919be105 100644 --- a/libgfortran/generated/minval_r10.c +++ b/libgfortran/generated/minval_r10.c @@ -60,11 +60,11 @@ minval_r10 (gfc_array_r10 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ minval_r10 (gfc_array_r10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ minval_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_10)); if (alloc_size == 0) @@ -124,7 +125,7 @@ minval_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mminval_r10 (gfc_array_r10 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mminval_r10 (gfc_array_r10 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mminval_r10 (gfc_array_r10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mminval_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mminval_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ sminval_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ sminval_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minval_r16.c b/libgfortran/generated/minval_r16.c index e4e38275d3f..0f270d55701 100644 --- a/libgfortran/generated/minval_r16.c +++ b/libgfortran/generated/minval_r16.c @@ -60,11 +60,11 @@ minval_r16 (gfc_array_r16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ minval_r16 (gfc_array_r16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ minval_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ minval_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mminval_r16 (gfc_array_r16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mminval_r16 (gfc_array_r16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mminval_r16 (gfc_array_r16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mminval_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mminval_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ sminval_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ sminval_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minval_r4.c b/libgfortran/generated/minval_r4.c index 515b2db4976..8e7068348db 100644 --- a/libgfortran/generated/minval_r4.c +++ b/libgfortran/generated/minval_r4.c @@ -60,11 +60,11 @@ minval_r4 (gfc_array_r4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ minval_r4 (gfc_array_r4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ minval_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ minval_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mminval_r4 (gfc_array_r4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mminval_r4 (gfc_array_r4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mminval_r4 (gfc_array_r4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mminval_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mminval_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ sminval_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ sminval_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/minval_r8.c b/libgfortran/generated/minval_r8.c index c61656f874e..99523caad2f 100644 --- a/libgfortran/generated/minval_r8.c +++ b/libgfortran/generated/minval_r8.c @@ -60,11 +60,11 @@ minval_r8 (gfc_array_r8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ minval_r8 (gfc_array_r8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ minval_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ minval_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -236,7 +237,7 @@ mminval_r8 (gfc_array_r8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -247,13 +248,13 @@ mminval_r8 (gfc_array_r8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -262,8 +263,8 @@ mminval_r8 (gfc_array_r8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -272,23 +273,24 @@ mminval_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -317,7 +319,7 @@ mminval_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -454,23 +456,23 @@ sminval_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -508,7 +510,7 @@ sminval_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/norm2_r10.c b/libgfortran/generated/norm2_r10.c index 0145c99b652..d414e6dadea 100644 --- a/libgfortran/generated/norm2_r10.c +++ b/libgfortran/generated/norm2_r10.c @@ -64,11 +64,11 @@ norm2_r10 (gfc_array_r10 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ norm2_r10 (gfc_array_r10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -85,23 +85,24 @@ norm2_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_10)); if (alloc_size == 0) @@ -128,7 +129,7 @@ norm2_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/norm2_r16.c b/libgfortran/generated/norm2_r16.c index 46329d52329..da4445a35d2 100644 --- a/libgfortran/generated/norm2_r16.c +++ b/libgfortran/generated/norm2_r16.c @@ -68,11 +68,11 @@ norm2_r16 (gfc_array_r16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -80,7 +80,7 @@ norm2_r16 (gfc_array_r16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -89,23 +89,24 @@ norm2_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_16)); if (alloc_size == 0) @@ -132,7 +133,7 @@ norm2_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/norm2_r4.c b/libgfortran/generated/norm2_r4.c index 067dbee6292..5e7a2b9382b 100644 --- a/libgfortran/generated/norm2_r4.c +++ b/libgfortran/generated/norm2_r4.c @@ -64,11 +64,11 @@ norm2_r4 (gfc_array_r4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ norm2_r4 (gfc_array_r4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -85,23 +85,24 @@ norm2_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_4)); if (alloc_size == 0) @@ -128,7 +129,7 @@ norm2_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/norm2_r8.c b/libgfortran/generated/norm2_r8.c index 51c89427a4a..f96f8a45ac5 100644 --- a/libgfortran/generated/norm2_r8.c +++ b/libgfortran/generated/norm2_r8.c @@ -64,11 +64,11 @@ norm2_r8 (gfc_array_r8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -76,7 +76,7 @@ norm2_r8 (gfc_array_r8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -85,23 +85,24 @@ norm2_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_8)); if (alloc_size == 0) @@ -128,7 +129,7 @@ norm2_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/pack_c10.c b/libgfortran/generated/pack_c10.c index 90866a840d1..28ecabf8cd0 100644 --- a/libgfortran/generated/pack_c10.c +++ b/libgfortran/generated/pack_c10.c @@ -103,7 +103,7 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_COMPLEX_10)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/pack_c16.c b/libgfortran/generated/pack_c16.c index 60f60d1e43d..05e0fc3525e 100644 --- a/libgfortran/generated/pack_c16.c +++ b/libgfortran/generated/pack_c16.c @@ -103,7 +103,7 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_COMPLEX_16)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/pack_c4.c b/libgfortran/generated/pack_c4.c index 36a9f941c73..39695ada844 100644 --- a/libgfortran/generated/pack_c4.c +++ b/libgfortran/generated/pack_c4.c @@ -103,7 +103,7 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_COMPLEX_4)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/pack_c8.c b/libgfortran/generated/pack_c8.c index 38880c1831a..f3478e7ce8e 100644 --- a/libgfortran/generated/pack_c8.c +++ b/libgfortran/generated/pack_c8.c @@ -103,7 +103,7 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_COMPLEX_8)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/pack_i1.c b/libgfortran/generated/pack_i1.c index 933cf9ab796..e87ef18730d 100644 --- a/libgfortran/generated/pack_i1.c +++ b/libgfortran/generated/pack_i1.c @@ -103,7 +103,7 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_INTEGER_1)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/pack_i16.c b/libgfortran/generated/pack_i16.c index 01d32ad0fad..d57d303ccd8 100644 --- a/libgfortran/generated/pack_i16.c +++ b/libgfortran/generated/pack_i16.c @@ -103,7 +103,7 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_INTEGER_16)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/pack_i2.c b/libgfortran/generated/pack_i2.c index de329abf11a..4059e21c9a4 100644 --- a/libgfortran/generated/pack_i2.c +++ b/libgfortran/generated/pack_i2.c @@ -103,7 +103,7 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_INTEGER_2)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/pack_i4.c b/libgfortran/generated/pack_i4.c index 93ac356f81a..190095e8fbe 100644 --- a/libgfortran/generated/pack_i4.c +++ b/libgfortran/generated/pack_i4.c @@ -103,7 +103,7 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_INTEGER_4)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/pack_i8.c b/libgfortran/generated/pack_i8.c index ec7b4275c3d..a9d2f9d11e7 100644 --- a/libgfortran/generated/pack_i8.c +++ b/libgfortran/generated/pack_i8.c @@ -103,7 +103,7 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_INTEGER_8)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/pack_r10.c b/libgfortran/generated/pack_r10.c index 8b3e81693a5..e89c5298962 100644 --- a/libgfortran/generated/pack_r10.c +++ b/libgfortran/generated/pack_r10.c @@ -103,7 +103,7 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_REAL_10)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/pack_r16.c b/libgfortran/generated/pack_r16.c index 598ef8e576a..4b3e7561526 100644 --- a/libgfortran/generated/pack_r16.c +++ b/libgfortran/generated/pack_r16.c @@ -103,7 +103,7 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_REAL_16)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/pack_r4.c b/libgfortran/generated/pack_r4.c index 955a812d248..14e7914f68e 100644 --- a/libgfortran/generated/pack_r4.c +++ b/libgfortran/generated/pack_r4.c @@ -103,7 +103,7 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_REAL_4)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/pack_r8.c b/libgfortran/generated/pack_r8.c index d0bb227e163..07e29f7c5b1 100644 --- a/libgfortran/generated/pack_r8.c +++ b/libgfortran/generated/pack_r8.c @@ -103,7 +103,7 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -125,8 +125,8 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] <= 0) zero_sized = 1; - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (sstride[0] == 0) sstride[0] = 1; @@ -163,7 +163,7 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, if (ret->base_addr == NULL) { /* Setup the array descriptor. */ - GFC_DIMENSION_SET(ret->dim[0], 0, total-1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, total, sizeof (GFC_REAL_8)); ret->offset = 0; @@ -186,7 +186,7 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, } } - rstride0 = GFC_DESCRIPTOR_STRIDE(ret,0); + rstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (rstride0 == 0) rstride0 = 1; sstride0 = sstride[0]; @@ -239,7 +239,7 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, nelem = ((rptr - ret->base_addr) / rstride0); if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (sstride0 == 0) sstride0 = 1; diff --git a/libgfortran/generated/parity_l1.c b/libgfortran/generated/parity_l1.c index ff81d1ac5ed..615a744b0d1 100644 --- a/libgfortran/generated/parity_l1.c +++ b/libgfortran/generated/parity_l1.c @@ -61,11 +61,11 @@ parity_l1 (gfc_array_l1 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ parity_l1 (gfc_array_l1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ parity_l1 (gfc_array_l1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_LOGICAL_1)); if (alloc_size == 0) @@ -125,7 +126,7 @@ parity_l1 (gfc_array_l1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/parity_l16.c b/libgfortran/generated/parity_l16.c index 66970d00f94..dd7d69a830c 100644 --- a/libgfortran/generated/parity_l16.c +++ b/libgfortran/generated/parity_l16.c @@ -61,11 +61,11 @@ parity_l16 (gfc_array_l16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ parity_l16 (gfc_array_l16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ parity_l16 (gfc_array_l16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_LOGICAL_16)); if (alloc_size == 0) @@ -125,7 +126,7 @@ parity_l16 (gfc_array_l16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/parity_l2.c b/libgfortran/generated/parity_l2.c index 5942257e3d6..7a64c1891e4 100644 --- a/libgfortran/generated/parity_l2.c +++ b/libgfortran/generated/parity_l2.c @@ -61,11 +61,11 @@ parity_l2 (gfc_array_l2 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ parity_l2 (gfc_array_l2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ parity_l2 (gfc_array_l2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_LOGICAL_2)); if (alloc_size == 0) @@ -125,7 +126,7 @@ parity_l2 (gfc_array_l2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/parity_l4.c b/libgfortran/generated/parity_l4.c index 4f8a9f91756..11e0bbf67be 100644 --- a/libgfortran/generated/parity_l4.c +++ b/libgfortran/generated/parity_l4.c @@ -61,11 +61,11 @@ parity_l4 (gfc_array_l4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ parity_l4 (gfc_array_l4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ parity_l4 (gfc_array_l4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_LOGICAL_4)); if (alloc_size == 0) @@ -125,7 +126,7 @@ parity_l4 (gfc_array_l4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/parity_l8.c b/libgfortran/generated/parity_l8.c index 73b1d9fba33..ac131918caf 100644 --- a/libgfortran/generated/parity_l8.c +++ b/libgfortran/generated/parity_l8.c @@ -61,11 +61,11 @@ parity_l8 (gfc_array_l8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -73,7 +73,7 @@ parity_l8 (gfc_array_l8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -82,23 +82,24 @@ parity_l8 (gfc_array_l8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_LOGICAL_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_LOGICAL_8)); if (alloc_size == 0) @@ -125,7 +126,7 @@ parity_l8 (gfc_array_l8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } diff --git a/libgfortran/generated/product_c10.c b/libgfortran/generated/product_c10.c index 7b325837aed..5607dbe75cf 100644 --- a/libgfortran/generated/product_c10.c +++ b/libgfortran/generated/product_c10.c @@ -60,11 +60,11 @@ product_c10 (gfc_array_c10 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_c10 (gfc_array_c10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_c10 (gfc_array_c10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_10)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_c10 (gfc_array_c10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_c10 (gfc_array_c10 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_c10 (gfc_array_c10 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_c10 (gfc_array_c10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_c10 (gfc_array_c10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_10); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_c10 (gfc_array_c10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_c10 (gfc_array_c10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_c10 (gfc_array_c10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/product_c16.c b/libgfortran/generated/product_c16.c index 4f31e1b63d0..c0c972cc295 100644 --- a/libgfortran/generated/product_c16.c +++ b/libgfortran/generated/product_c16.c @@ -60,11 +60,11 @@ product_c16 (gfc_array_c16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_c16 (gfc_array_c16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_c16 (gfc_array_c16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_c16 (gfc_array_c16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_c16 (gfc_array_c16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_c16 (gfc_array_c16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_c16 (gfc_array_c16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_c16 (gfc_array_c16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_c16 (gfc_array_c16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_c16 (gfc_array_c16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_c16 (gfc_array_c16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/product_c4.c b/libgfortran/generated/product_c4.c index 038c502d479..b61635dd463 100644 --- a/libgfortran/generated/product_c4.c +++ b/libgfortran/generated/product_c4.c @@ -60,11 +60,11 @@ product_c4 (gfc_array_c4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_c4 (gfc_array_c4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_c4 (gfc_array_c4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_c4 (gfc_array_c4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_c4 (gfc_array_c4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_c4 (gfc_array_c4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_c4 (gfc_array_c4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_c4 (gfc_array_c4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_c4 (gfc_array_c4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_c4 (gfc_array_c4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_c4 (gfc_array_c4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/product_c8.c b/libgfortran/generated/product_c8.c index a941a6c624a..09d23b9be0e 100644 --- a/libgfortran/generated/product_c8.c +++ b/libgfortran/generated/product_c8.c @@ -60,11 +60,11 @@ product_c8 (gfc_array_c8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_c8 (gfc_array_c8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_c8 (gfc_array_c8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_c8 (gfc_array_c8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_c8 (gfc_array_c8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_c8 (gfc_array_c8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_c8 (gfc_array_c8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_c8 (gfc_array_c8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_c8 (gfc_array_c8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_c8 (gfc_array_c8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_c8 (gfc_array_c8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/product_i1.c b/libgfortran/generated/product_i1.c index 39d94fc81ec..23192cbea79 100644 --- a/libgfortran/generated/product_i1.c +++ b/libgfortran/generated/product_i1.c @@ -60,11 +60,11 @@ product_i1 (gfc_array_i1 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_i1 (gfc_array_i1 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_i1 (gfc_array_i1 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/product_i16.c b/libgfortran/generated/product_i16.c index a89070a44ec..56320078ffc 100644 --- a/libgfortran/generated/product_i16.c +++ b/libgfortran/generated/product_i16.c @@ -60,11 +60,11 @@ product_i16 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_i16 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_i16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/product_i2.c b/libgfortran/generated/product_i2.c index c8e04ef85dc..a0b8129a320 100644 --- a/libgfortran/generated/product_i2.c +++ b/libgfortran/generated/product_i2.c @@ -60,11 +60,11 @@ product_i2 (gfc_array_i2 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_i2 (gfc_array_i2 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_i2 (gfc_array_i2 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/product_i4.c b/libgfortran/generated/product_i4.c index 1d3b9cf6a12..84f0d5c503f 100644 --- a/libgfortran/generated/product_i4.c +++ b/libgfortran/generated/product_i4.c @@ -60,11 +60,11 @@ product_i4 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_i4 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_i4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/product_i8.c b/libgfortran/generated/product_i8.c index 7d61b9ba280..b381eda82ab 100644 --- a/libgfortran/generated/product_i8.c +++ b/libgfortran/generated/product_i8.c @@ -60,11 +60,11 @@ product_i8 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_i8 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_i8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/product_r10.c b/libgfortran/generated/product_r10.c index 16aa3059e14..65229926f6e 100644 --- a/libgfortran/generated/product_r10.c +++ b/libgfortran/generated/product_r10.c @@ -60,11 +60,11 @@ product_r10 (gfc_array_r10 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_r10 (gfc_array_r10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_10)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_r10 (gfc_array_r10 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_r10 (gfc_array_r10 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_r10 (gfc_array_r10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/product_r16.c b/libgfortran/generated/product_r16.c index 3bb085ff19b..13891a0fccc 100644 --- a/libgfortran/generated/product_r16.c +++ b/libgfortran/generated/product_r16.c @@ -60,11 +60,11 @@ product_r16 (gfc_array_r16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_r16 (gfc_array_r16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_r16 (gfc_array_r16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_r16 (gfc_array_r16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_r16 (gfc_array_r16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/product_r4.c b/libgfortran/generated/product_r4.c index 18dfdde9672..5d9a573f01c 100644 --- a/libgfortran/generated/product_r4.c +++ b/libgfortran/generated/product_r4.c @@ -60,11 +60,11 @@ product_r4 (gfc_array_r4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_r4 (gfc_array_r4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_r4 (gfc_array_r4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_r4 (gfc_array_r4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_r4 (gfc_array_r4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/product_r8.c b/libgfortran/generated/product_r8.c index 7ac062aa98f..cdc3a5e9fc2 100644 --- a/libgfortran/generated/product_r8.c +++ b/libgfortran/generated/product_r8.c @@ -60,11 +60,11 @@ product_r8 (gfc_array_r8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ product_r8 (gfc_array_r8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ product_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ product_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ mproduct_r8 (gfc_array_r8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ mproduct_r8 (gfc_array_r8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ mproduct_r8 (gfc_array_r8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ mproduct_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ mproduct_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ sproduct_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ sproduct_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/reshape_c10.c b/libgfortran/generated/reshape_c10.c index a7fb560d632..45914ab8b4e 100644 --- a/libgfortran/generated/reshape_c10.c +++ b/libgfortran/generated/reshape_c10.c @@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined (HAVE_GFC_COMPLEX_10) -typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type; +typedef CFI_CDESC_TYPE_T(1, index_type) shape_type; extern void reshape_c10 (gfc_array_c10 * const restrict, @@ -87,7 +87,7 @@ reshape_c10 (gfc_array_c10 * const restrict ret, for (n = 0; n < rdim; n++) { - shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)]; + shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)]; if (shape_data[n] <= 0) { shape_data[n] = 0; @@ -99,12 +99,12 @@ reshape_c10 (gfc_array_c10 * const restrict ret, { index_type alloc_size; - rs = 1; + rs = sizeof (GFC_COMPLEX_10); for (n = 0; n < rdim; n++) { rex = shape_data[n]; - GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs); + GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs); rs *= rex; } @@ -116,7 +116,8 @@ reshape_c10 (gfc_array_c10 * const restrict ret, alloc_size = rs; ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_10)); - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim; + ret->elem_len = source->elem_len; + ret->type = source->type; } if (shape_empty) @@ -130,7 +131,7 @@ reshape_c10 (gfc_array_c10 * const restrict ret, for (n = 0; n < pdim; n++) { pcount[n] = 0; - pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n); + pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n); pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n); if (pextent[n] <= 0) { @@ -193,7 +194,7 @@ reshape_c10 (gfc_array_c10 * const restrict ret, for (n = 0; n < rdim; n++) { - v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; if (v < 0 || v >= rdim) runtime_error("Value %ld out of range in ORDER argument" @@ -212,12 +213,12 @@ reshape_c10 (gfc_array_c10 * const restrict ret, for (n = 0; n < rdim; n++) { if (order) - dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; else dim = n; rcount[n] = 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim); if (rextent[n] < 0) rextent[n] = 0; @@ -239,7 +240,7 @@ reshape_c10 (gfc_array_c10 * const restrict ret, for (n = 0; n < sdim; n++) { scount[n] = 0; - sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (sextent[n] <= 0) { diff --git a/libgfortran/generated/reshape_c16.c b/libgfortran/generated/reshape_c16.c index a8186f98d53..517c672aab3 100644 --- a/libgfortran/generated/reshape_c16.c +++ b/libgfortran/generated/reshape_c16.c @@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined (HAVE_GFC_COMPLEX_16) -typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type; +typedef CFI_CDESC_TYPE_T(1, index_type) shape_type; extern void reshape_c16 (gfc_array_c16 * const restrict, @@ -87,7 +87,7 @@ reshape_c16 (gfc_array_c16 * const restrict ret, for (n = 0; n < rdim; n++) { - shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)]; + shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)]; if (shape_data[n] <= 0) { shape_data[n] = 0; @@ -99,12 +99,12 @@ reshape_c16 (gfc_array_c16 * const restrict ret, { index_type alloc_size; - rs = 1; + rs = sizeof (GFC_COMPLEX_16); for (n = 0; n < rdim; n++) { rex = shape_data[n]; - GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs); + GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs); rs *= rex; } @@ -116,7 +116,8 @@ reshape_c16 (gfc_array_c16 * const restrict ret, alloc_size = rs; ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_16)); - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim; + ret->elem_len = source->elem_len; + ret->type = source->type; } if (shape_empty) @@ -130,7 +131,7 @@ reshape_c16 (gfc_array_c16 * const restrict ret, for (n = 0; n < pdim; n++) { pcount[n] = 0; - pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n); + pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n); pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n); if (pextent[n] <= 0) { @@ -193,7 +194,7 @@ reshape_c16 (gfc_array_c16 * const restrict ret, for (n = 0; n < rdim; n++) { - v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; if (v < 0 || v >= rdim) runtime_error("Value %ld out of range in ORDER argument" @@ -212,12 +213,12 @@ reshape_c16 (gfc_array_c16 * const restrict ret, for (n = 0; n < rdim; n++) { if (order) - dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; else dim = n; rcount[n] = 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim); if (rextent[n] < 0) rextent[n] = 0; @@ -239,7 +240,7 @@ reshape_c16 (gfc_array_c16 * const restrict ret, for (n = 0; n < sdim; n++) { scount[n] = 0; - sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (sextent[n] <= 0) { diff --git a/libgfortran/generated/reshape_c4.c b/libgfortran/generated/reshape_c4.c index 1aa1934cef7..81f0e539d10 100644 --- a/libgfortran/generated/reshape_c4.c +++ b/libgfortran/generated/reshape_c4.c @@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined (HAVE_GFC_COMPLEX_4) -typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type; +typedef CFI_CDESC_TYPE_T(1, index_type) shape_type; extern void reshape_c4 (gfc_array_c4 * const restrict, @@ -87,7 +87,7 @@ reshape_c4 (gfc_array_c4 * const restrict ret, for (n = 0; n < rdim; n++) { - shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)]; + shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)]; if (shape_data[n] <= 0) { shape_data[n] = 0; @@ -99,12 +99,12 @@ reshape_c4 (gfc_array_c4 * const restrict ret, { index_type alloc_size; - rs = 1; + rs = sizeof (GFC_COMPLEX_4); for (n = 0; n < rdim; n++) { rex = shape_data[n]; - GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs); + GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs); rs *= rex; } @@ -116,7 +116,8 @@ reshape_c4 (gfc_array_c4 * const restrict ret, alloc_size = rs; ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_4)); - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim; + ret->elem_len = source->elem_len; + ret->type = source->type; } if (shape_empty) @@ -130,7 +131,7 @@ reshape_c4 (gfc_array_c4 * const restrict ret, for (n = 0; n < pdim; n++) { pcount[n] = 0; - pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n); + pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n); pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n); if (pextent[n] <= 0) { @@ -193,7 +194,7 @@ reshape_c4 (gfc_array_c4 * const restrict ret, for (n = 0; n < rdim; n++) { - v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; if (v < 0 || v >= rdim) runtime_error("Value %ld out of range in ORDER argument" @@ -212,12 +213,12 @@ reshape_c4 (gfc_array_c4 * const restrict ret, for (n = 0; n < rdim; n++) { if (order) - dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; else dim = n; rcount[n] = 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim); if (rextent[n] < 0) rextent[n] = 0; @@ -239,7 +240,7 @@ reshape_c4 (gfc_array_c4 * const restrict ret, for (n = 0; n < sdim; n++) { scount[n] = 0; - sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (sextent[n] <= 0) { diff --git a/libgfortran/generated/reshape_c8.c b/libgfortran/generated/reshape_c8.c index 5b7f796234e..d91dcae432b 100644 --- a/libgfortran/generated/reshape_c8.c +++ b/libgfortran/generated/reshape_c8.c @@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined (HAVE_GFC_COMPLEX_8) -typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type; +typedef CFI_CDESC_TYPE_T(1, index_type) shape_type; extern void reshape_c8 (gfc_array_c8 * const restrict, @@ -87,7 +87,7 @@ reshape_c8 (gfc_array_c8 * const restrict ret, for (n = 0; n < rdim; n++) { - shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)]; + shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)]; if (shape_data[n] <= 0) { shape_data[n] = 0; @@ -99,12 +99,12 @@ reshape_c8 (gfc_array_c8 * const restrict ret, { index_type alloc_size; - rs = 1; + rs = sizeof (GFC_COMPLEX_8); for (n = 0; n < rdim; n++) { rex = shape_data[n]; - GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs); + GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs); rs *= rex; } @@ -116,7 +116,8 @@ reshape_c8 (gfc_array_c8 * const restrict ret, alloc_size = rs; ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_8)); - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim; + ret->elem_len = source->elem_len; + ret->type = source->type; } if (shape_empty) @@ -130,7 +131,7 @@ reshape_c8 (gfc_array_c8 * const restrict ret, for (n = 0; n < pdim; n++) { pcount[n] = 0; - pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n); + pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n); pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n); if (pextent[n] <= 0) { @@ -193,7 +194,7 @@ reshape_c8 (gfc_array_c8 * const restrict ret, for (n = 0; n < rdim; n++) { - v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; if (v < 0 || v >= rdim) runtime_error("Value %ld out of range in ORDER argument" @@ -212,12 +213,12 @@ reshape_c8 (gfc_array_c8 * const restrict ret, for (n = 0; n < rdim; n++) { if (order) - dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; else dim = n; rcount[n] = 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim); if (rextent[n] < 0) rextent[n] = 0; @@ -239,7 +240,7 @@ reshape_c8 (gfc_array_c8 * const restrict ret, for (n = 0; n < sdim; n++) { scount[n] = 0; - sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (sextent[n] <= 0) { diff --git a/libgfortran/generated/reshape_i16.c b/libgfortran/generated/reshape_i16.c index b766e1a9acf..b43a841b7c9 100644 --- a/libgfortran/generated/reshape_i16.c +++ b/libgfortran/generated/reshape_i16.c @@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined (HAVE_GFC_INTEGER_16) -typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type; +typedef CFI_CDESC_TYPE_T(1, index_type) shape_type; extern void reshape_16 (gfc_array_i16 * const restrict, @@ -87,7 +87,7 @@ reshape_16 (gfc_array_i16 * const restrict ret, for (n = 0; n < rdim; n++) { - shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)]; + shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)]; if (shape_data[n] <= 0) { shape_data[n] = 0; @@ -99,12 +99,12 @@ reshape_16 (gfc_array_i16 * const restrict ret, { index_type alloc_size; - rs = 1; + rs = sizeof (GFC_INTEGER_16); for (n = 0; n < rdim; n++) { rex = shape_data[n]; - GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs); + GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs); rs *= rex; } @@ -116,7 +116,8 @@ reshape_16 (gfc_array_i16 * const restrict ret, alloc_size = rs; ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim; + ret->elem_len = source->elem_len; + ret->type = source->type; } if (shape_empty) @@ -130,7 +131,7 @@ reshape_16 (gfc_array_i16 * const restrict ret, for (n = 0; n < pdim; n++) { pcount[n] = 0; - pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n); + pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n); pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n); if (pextent[n] <= 0) { @@ -193,7 +194,7 @@ reshape_16 (gfc_array_i16 * const restrict ret, for (n = 0; n < rdim; n++) { - v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; if (v < 0 || v >= rdim) runtime_error("Value %ld out of range in ORDER argument" @@ -212,12 +213,12 @@ reshape_16 (gfc_array_i16 * const restrict ret, for (n = 0; n < rdim; n++) { if (order) - dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; else dim = n; rcount[n] = 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim); if (rextent[n] < 0) rextent[n] = 0; @@ -239,7 +240,7 @@ reshape_16 (gfc_array_i16 * const restrict ret, for (n = 0; n < sdim; n++) { scount[n] = 0; - sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (sextent[n] <= 0) { diff --git a/libgfortran/generated/reshape_i4.c b/libgfortran/generated/reshape_i4.c index 4831857b827..01f5b34b1e3 100644 --- a/libgfortran/generated/reshape_i4.c +++ b/libgfortran/generated/reshape_i4.c @@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined (HAVE_GFC_INTEGER_4) -typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type; +typedef CFI_CDESC_TYPE_T(1, index_type) shape_type; extern void reshape_4 (gfc_array_i4 * const restrict, @@ -87,7 +87,7 @@ reshape_4 (gfc_array_i4 * const restrict ret, for (n = 0; n < rdim; n++) { - shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)]; + shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)]; if (shape_data[n] <= 0) { shape_data[n] = 0; @@ -99,12 +99,12 @@ reshape_4 (gfc_array_i4 * const restrict ret, { index_type alloc_size; - rs = 1; + rs = sizeof (GFC_INTEGER_4); for (n = 0; n < rdim; n++) { rex = shape_data[n]; - GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs); + GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs); rs *= rex; } @@ -116,7 +116,8 @@ reshape_4 (gfc_array_i4 * const restrict ret, alloc_size = rs; ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim; + ret->elem_len = source->elem_len; + ret->type = source->type; } if (shape_empty) @@ -130,7 +131,7 @@ reshape_4 (gfc_array_i4 * const restrict ret, for (n = 0; n < pdim; n++) { pcount[n] = 0; - pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n); + pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n); pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n); if (pextent[n] <= 0) { @@ -193,7 +194,7 @@ reshape_4 (gfc_array_i4 * const restrict ret, for (n = 0; n < rdim; n++) { - v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; if (v < 0 || v >= rdim) runtime_error("Value %ld out of range in ORDER argument" @@ -212,12 +213,12 @@ reshape_4 (gfc_array_i4 * const restrict ret, for (n = 0; n < rdim; n++) { if (order) - dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; else dim = n; rcount[n] = 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim); if (rextent[n] < 0) rextent[n] = 0; @@ -239,7 +240,7 @@ reshape_4 (gfc_array_i4 * const restrict ret, for (n = 0; n < sdim; n++) { scount[n] = 0; - sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (sextent[n] <= 0) { diff --git a/libgfortran/generated/reshape_i8.c b/libgfortran/generated/reshape_i8.c index 1729d488bae..63ecd497926 100644 --- a/libgfortran/generated/reshape_i8.c +++ b/libgfortran/generated/reshape_i8.c @@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined (HAVE_GFC_INTEGER_8) -typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type; +typedef CFI_CDESC_TYPE_T(1, index_type) shape_type; extern void reshape_8 (gfc_array_i8 * const restrict, @@ -87,7 +87,7 @@ reshape_8 (gfc_array_i8 * const restrict ret, for (n = 0; n < rdim; n++) { - shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)]; + shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)]; if (shape_data[n] <= 0) { shape_data[n] = 0; @@ -99,12 +99,12 @@ reshape_8 (gfc_array_i8 * const restrict ret, { index_type alloc_size; - rs = 1; + rs = sizeof (GFC_INTEGER_8); for (n = 0; n < rdim; n++) { rex = shape_data[n]; - GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs); + GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs); rs *= rex; } @@ -116,7 +116,8 @@ reshape_8 (gfc_array_i8 * const restrict ret, alloc_size = rs; ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim; + ret->elem_len = source->elem_len; + ret->type = source->type; } if (shape_empty) @@ -130,7 +131,7 @@ reshape_8 (gfc_array_i8 * const restrict ret, for (n = 0; n < pdim; n++) { pcount[n] = 0; - pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n); + pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n); pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n); if (pextent[n] <= 0) { @@ -193,7 +194,7 @@ reshape_8 (gfc_array_i8 * const restrict ret, for (n = 0; n < rdim; n++) { - v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; if (v < 0 || v >= rdim) runtime_error("Value %ld out of range in ORDER argument" @@ -212,12 +213,12 @@ reshape_8 (gfc_array_i8 * const restrict ret, for (n = 0; n < rdim; n++) { if (order) - dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; else dim = n; rcount[n] = 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim); if (rextent[n] < 0) rextent[n] = 0; @@ -239,7 +240,7 @@ reshape_8 (gfc_array_i8 * const restrict ret, for (n = 0; n < sdim; n++) { scount[n] = 0; - sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (sextent[n] <= 0) { diff --git a/libgfortran/generated/reshape_r10.c b/libgfortran/generated/reshape_r10.c index f1dd44a43a6..2f1a552c50c 100644 --- a/libgfortran/generated/reshape_r10.c +++ b/libgfortran/generated/reshape_r10.c @@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined (HAVE_GFC_REAL_10) -typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type; +typedef CFI_CDESC_TYPE_T(1, index_type) shape_type; extern void reshape_r10 (gfc_array_r10 * const restrict, @@ -87,7 +87,7 @@ reshape_r10 (gfc_array_r10 * const restrict ret, for (n = 0; n < rdim; n++) { - shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)]; + shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)]; if (shape_data[n] <= 0) { shape_data[n] = 0; @@ -99,12 +99,12 @@ reshape_r10 (gfc_array_r10 * const restrict ret, { index_type alloc_size; - rs = 1; + rs = sizeof (GFC_REAL_10); for (n = 0; n < rdim; n++) { rex = shape_data[n]; - GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs); + GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs); rs *= rex; } @@ -116,7 +116,8 @@ reshape_r10 (gfc_array_r10 * const restrict ret, alloc_size = rs; ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_10)); - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim; + ret->elem_len = source->elem_len; + ret->type = source->type; } if (shape_empty) @@ -130,7 +131,7 @@ reshape_r10 (gfc_array_r10 * const restrict ret, for (n = 0; n < pdim; n++) { pcount[n] = 0; - pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n); + pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n); pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n); if (pextent[n] <= 0) { @@ -193,7 +194,7 @@ reshape_r10 (gfc_array_r10 * const restrict ret, for (n = 0; n < rdim; n++) { - v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; if (v < 0 || v >= rdim) runtime_error("Value %ld out of range in ORDER argument" @@ -212,12 +213,12 @@ reshape_r10 (gfc_array_r10 * const restrict ret, for (n = 0; n < rdim; n++) { if (order) - dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; else dim = n; rcount[n] = 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim); if (rextent[n] < 0) rextent[n] = 0; @@ -239,7 +240,7 @@ reshape_r10 (gfc_array_r10 * const restrict ret, for (n = 0; n < sdim; n++) { scount[n] = 0; - sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (sextent[n] <= 0) { diff --git a/libgfortran/generated/reshape_r16.c b/libgfortran/generated/reshape_r16.c index 360b18ffdf4..31d8a0756c7 100644 --- a/libgfortran/generated/reshape_r16.c +++ b/libgfortran/generated/reshape_r16.c @@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined (HAVE_GFC_REAL_16) -typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type; +typedef CFI_CDESC_TYPE_T(1, index_type) shape_type; extern void reshape_r16 (gfc_array_r16 * const restrict, @@ -87,7 +87,7 @@ reshape_r16 (gfc_array_r16 * const restrict ret, for (n = 0; n < rdim; n++) { - shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)]; + shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)]; if (shape_data[n] <= 0) { shape_data[n] = 0; @@ -99,12 +99,12 @@ reshape_r16 (gfc_array_r16 * const restrict ret, { index_type alloc_size; - rs = 1; + rs = sizeof (GFC_REAL_16); for (n = 0; n < rdim; n++) { rex = shape_data[n]; - GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs); + GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs); rs *= rex; } @@ -116,7 +116,8 @@ reshape_r16 (gfc_array_r16 * const restrict ret, alloc_size = rs; ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_16)); - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim; + ret->elem_len = source->elem_len; + ret->type = source->type; } if (shape_empty) @@ -130,7 +131,7 @@ reshape_r16 (gfc_array_r16 * const restrict ret, for (n = 0; n < pdim; n++) { pcount[n] = 0; - pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n); + pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n); pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n); if (pextent[n] <= 0) { @@ -193,7 +194,7 @@ reshape_r16 (gfc_array_r16 * const restrict ret, for (n = 0; n < rdim; n++) { - v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; if (v < 0 || v >= rdim) runtime_error("Value %ld out of range in ORDER argument" @@ -212,12 +213,12 @@ reshape_r16 (gfc_array_r16 * const restrict ret, for (n = 0; n < rdim; n++) { if (order) - dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; else dim = n; rcount[n] = 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim); if (rextent[n] < 0) rextent[n] = 0; @@ -239,7 +240,7 @@ reshape_r16 (gfc_array_r16 * const restrict ret, for (n = 0; n < sdim; n++) { scount[n] = 0; - sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (sextent[n] <= 0) { diff --git a/libgfortran/generated/reshape_r4.c b/libgfortran/generated/reshape_r4.c index e06cb541799..8db329ba870 100644 --- a/libgfortran/generated/reshape_r4.c +++ b/libgfortran/generated/reshape_r4.c @@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined (HAVE_GFC_REAL_4) -typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type; +typedef CFI_CDESC_TYPE_T(1, index_type) shape_type; extern void reshape_r4 (gfc_array_r4 * const restrict, @@ -87,7 +87,7 @@ reshape_r4 (gfc_array_r4 * const restrict ret, for (n = 0; n < rdim; n++) { - shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)]; + shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)]; if (shape_data[n] <= 0) { shape_data[n] = 0; @@ -99,12 +99,12 @@ reshape_r4 (gfc_array_r4 * const restrict ret, { index_type alloc_size; - rs = 1; + rs = sizeof (GFC_REAL_4); for (n = 0; n < rdim; n++) { rex = shape_data[n]; - GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs); + GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs); rs *= rex; } @@ -116,7 +116,8 @@ reshape_r4 (gfc_array_r4 * const restrict ret, alloc_size = rs; ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_4)); - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim; + ret->elem_len = source->elem_len; + ret->type = source->type; } if (shape_empty) @@ -130,7 +131,7 @@ reshape_r4 (gfc_array_r4 * const restrict ret, for (n = 0; n < pdim; n++) { pcount[n] = 0; - pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n); + pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n); pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n); if (pextent[n] <= 0) { @@ -193,7 +194,7 @@ reshape_r4 (gfc_array_r4 * const restrict ret, for (n = 0; n < rdim; n++) { - v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; if (v < 0 || v >= rdim) runtime_error("Value %ld out of range in ORDER argument" @@ -212,12 +213,12 @@ reshape_r4 (gfc_array_r4 * const restrict ret, for (n = 0; n < rdim; n++) { if (order) - dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; else dim = n; rcount[n] = 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim); if (rextent[n] < 0) rextent[n] = 0; @@ -239,7 +240,7 @@ reshape_r4 (gfc_array_r4 * const restrict ret, for (n = 0; n < sdim; n++) { scount[n] = 0; - sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (sextent[n] <= 0) { diff --git a/libgfortran/generated/reshape_r8.c b/libgfortran/generated/reshape_r8.c index 08888a8ad8e..33b476830d7 100644 --- a/libgfortran/generated/reshape_r8.c +++ b/libgfortran/generated/reshape_r8.c @@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined (HAVE_GFC_REAL_8) -typedef GFC_ARRAY_DESCRIPTOR(1, index_type) shape_type; +typedef CFI_CDESC_TYPE_T(1, index_type) shape_type; extern void reshape_r8 (gfc_array_r8 * const restrict, @@ -87,7 +87,7 @@ reshape_r8 (gfc_array_r8 * const restrict ret, for (n = 0; n < rdim; n++) { - shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE(shape,0)]; + shape_data[n] = shape->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(shape,0)]; if (shape_data[n] <= 0) { shape_data[n] = 0; @@ -99,12 +99,12 @@ reshape_r8 (gfc_array_r8 * const restrict ret, { index_type alloc_size; - rs = 1; + rs = sizeof (GFC_REAL_8); for (n = 0; n < rdim; n++) { rex = shape_data[n]; - GFC_DIMENSION_SET(ret->dim[n], 0, rex - 1, rs); + GFC_DIMENSION_SET(ret->dim[n], 0, rex, rs); rs *= rex; } @@ -116,7 +116,8 @@ reshape_r8 (gfc_array_r8 * const restrict ret, alloc_size = rs; ret->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_8)); - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim; + ret->elem_len = source->elem_len; + ret->type = source->type; } if (shape_empty) @@ -130,7 +131,7 @@ reshape_r8 (gfc_array_r8 * const restrict ret, for (n = 0; n < pdim; n++) { pcount[n] = 0; - pstride[n] = GFC_DESCRIPTOR_STRIDE(pad,n); + pstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(pad,n); pextent[n] = GFC_DESCRIPTOR_EXTENT(pad,n); if (pextent[n] <= 0) { @@ -193,7 +194,7 @@ reshape_r8 (gfc_array_r8 * const restrict ret, for (n = 0; n < rdim; n++) { - v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + v = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; if (v < 0 || v >= rdim) runtime_error("Value %ld out of range in ORDER argument" @@ -212,12 +213,12 @@ reshape_r8 (gfc_array_r8 * const restrict ret, for (n = 0; n < rdim; n++) { if (order) - dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE(order,0)] - 1; + dim = order->base_addr[n * GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(order,0)] - 1; else dim = n; rcount[n] = 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,dim); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,dim); rextent[n] = GFC_DESCRIPTOR_EXTENT(ret,dim); if (rextent[n] < 0) rextent[n] = 0; @@ -239,7 +240,7 @@ reshape_r8 (gfc_array_r8 * const restrict ret, for (n = 0; n < sdim; n++) { scount[n] = 0; - sstride[n] = GFC_DESCRIPTOR_STRIDE(source,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,n); sextent[n] = GFC_DESCRIPTOR_EXTENT(source,n); if (sextent[n] <= 0) { diff --git a/libgfortran/generated/shape_i16.c b/libgfortran/generated/shape_i16.c index c5047562d7f..ccf3484fdb6 100644 --- a/libgfortran/generated/shape_i16.c +++ b/libgfortran/generated/shape_i16.c @@ -47,12 +47,12 @@ shape_16 (gfc_array_i16 * const restrict ret, if (ret->base_addr == NULL) { - GFC_DIMENSION_SET(ret->dim[0], 0, rank - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, rank, sizeof (GFC_INTEGER_16)); ret->offset = 0; ret->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_16)); } - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (GFC_DESCRIPTOR_EXTENT(ret,0) < 1) return; diff --git a/libgfortran/generated/shape_i4.c b/libgfortran/generated/shape_i4.c index 0a56fe9fe92..1af330c7a1a 100644 --- a/libgfortran/generated/shape_i4.c +++ b/libgfortran/generated/shape_i4.c @@ -47,12 +47,12 @@ shape_4 (gfc_array_i4 * const restrict ret, if (ret->base_addr == NULL) { - GFC_DIMENSION_SET(ret->dim[0], 0, rank - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, rank, sizeof (GFC_INTEGER_4)); ret->offset = 0; ret->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); } - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (GFC_DESCRIPTOR_EXTENT(ret,0) < 1) return; diff --git a/libgfortran/generated/shape_i8.c b/libgfortran/generated/shape_i8.c index 6e9dc22583d..bec047d2e73 100644 --- a/libgfortran/generated/shape_i8.c +++ b/libgfortran/generated/shape_i8.c @@ -47,12 +47,12 @@ shape_8 (gfc_array_i8 * const restrict ret, if (ret->base_addr == NULL) { - GFC_DIMENSION_SET(ret->dim[0], 0, rank - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, rank, sizeof (GFC_INTEGER_8)); ret->offset = 0; ret->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_8)); } - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); if (GFC_DESCRIPTOR_EXTENT(ret,0) < 1) return; diff --git a/libgfortran/generated/spread_c10.c b/libgfortran/generated/spread_c10.c index 592443e71aa..ce9940ac14d 100644 --- a/libgfortran/generated/spread_c10.c +++ b/libgfortran/generated/spread_c10.c @@ -70,11 +70,12 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_COMPLEX_10)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_c10 (gfc_array_c10 *ret, const GFC_COMPLEX_10 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_10)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_COMPLEX_10)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/spread_c16.c b/libgfortran/generated/spread_c16.c index 0fce566d751..4ed122ff25f 100644 --- a/libgfortran/generated/spread_c16.c +++ b/libgfortran/generated/spread_c16.c @@ -70,11 +70,12 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_COMPLEX_16)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_c16 (gfc_array_c16 *ret, const GFC_COMPLEX_16 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_16)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_COMPLEX_16)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/spread_c4.c b/libgfortran/generated/spread_c4.c index 5d1e86b3756..67a672a17a8 100644 --- a/libgfortran/generated/spread_c4.c +++ b/libgfortran/generated/spread_c4.c @@ -70,11 +70,12 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_COMPLEX_4)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_c4 (gfc_array_c4 *ret, const GFC_COMPLEX_4 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_4)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_COMPLEX_4)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/spread_c8.c b/libgfortran/generated/spread_c8.c index f8b0da8bc76..b01627e53be 100644 --- a/libgfortran/generated/spread_c8.c +++ b/libgfortran/generated/spread_c8.c @@ -70,11 +70,12 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_COMPLEX_8)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_c8 (gfc_array_c8 *ret, const GFC_COMPLEX_8 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_COMPLEX_8)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_COMPLEX_8)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/spread_i1.c b/libgfortran/generated/spread_i1.c index 44aef16d3df..875b8864eea 100644 --- a/libgfortran/generated/spread_i1.c +++ b/libgfortran/generated/spread_i1.c @@ -70,11 +70,12 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_INTEGER_1)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_i1 (gfc_array_i1 *ret, const GFC_INTEGER_1 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_1)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_INTEGER_1)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/spread_i16.c b/libgfortran/generated/spread_i16.c index f4ad0180cce..3690ceb2a4f 100644 --- a/libgfortran/generated/spread_i16.c +++ b/libgfortran/generated/spread_i16.c @@ -70,11 +70,12 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_INTEGER_16)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_i16 (gfc_array_i16 *ret, const GFC_INTEGER_16 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_16)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_INTEGER_16)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/spread_i2.c b/libgfortran/generated/spread_i2.c index 02e7628394a..3f2f9ecbb30 100644 --- a/libgfortran/generated/spread_i2.c +++ b/libgfortran/generated/spread_i2.c @@ -70,11 +70,12 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_INTEGER_2)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_i2 (gfc_array_i2 *ret, const GFC_INTEGER_2 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_2)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_INTEGER_2)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/spread_i4.c b/libgfortran/generated/spread_i4.c index 0c8d9273657..92655d50b16 100644 --- a/libgfortran/generated/spread_i4.c +++ b/libgfortran/generated/spread_i4.c @@ -70,11 +70,12 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_INTEGER_4)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_i4 (gfc_array_i4 *ret, const GFC_INTEGER_4 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_4)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_INTEGER_4)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/spread_i8.c b/libgfortran/generated/spread_i8.c index 402c746cf3e..30f10d967f4 100644 --- a/libgfortran/generated/spread_i8.c +++ b/libgfortran/generated/spread_i8.c @@ -70,11 +70,12 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_INTEGER_8)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_i8 (gfc_array_i8 *ret, const GFC_INTEGER_8 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_INTEGER_8)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_INTEGER_8)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/spread_r10.c b/libgfortran/generated/spread_r10.c index 248186eb3f8..8f59d131a5e 100644 --- a/libgfortran/generated/spread_r10.c +++ b/libgfortran/generated/spread_r10.c @@ -70,11 +70,12 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_REAL_10)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_r10 (gfc_array_r10 *ret, const GFC_REAL_10 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_10)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_REAL_10)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/spread_r16.c b/libgfortran/generated/spread_r16.c index 50aef1087b9..4a1a35e0f24 100644 --- a/libgfortran/generated/spread_r16.c +++ b/libgfortran/generated/spread_r16.c @@ -70,11 +70,12 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_REAL_16)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_r16 (gfc_array_r16 *ret, const GFC_REAL_16 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_16)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_REAL_16)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/spread_r4.c b/libgfortran/generated/spread_r4.c index fab55c7a1db..a3f9b48a693 100644 --- a/libgfortran/generated/spread_r4.c +++ b/libgfortran/generated/spread_r4.c @@ -70,11 +70,12 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_REAL_4)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_r4 (gfc_array_r4 *ret, const GFC_REAL_4 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_4)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_REAL_4)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/spread_r8.c b/libgfortran/generated/spread_r8.c index 6076638d715..754bc40d2fc 100644 --- a/libgfortran/generated/spread_r8.c +++ b/libgfortran/generated/spread_r8.c @@ -70,11 +70,12 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source, if (ret->base_addr == NULL) { - size_t ub, stride; + size_t ext, stride; /* The front end has signalled that we need to populate the return array descriptor. */ - ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rrank; + ret->elem_len = source->elem_len; + ret->type = source->type; dim = 0; rs = 1; for (n = 0; n < rrank; n++) @@ -82,7 +83,7 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source, stride = rs; if (n == along - 1) { - ub = ncopies - 1; + ext = ncopies; rdelta = rs; rs *= ncopies; } @@ -90,14 +91,14 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source, { count[dim] = 0; extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); rstride[dim] = rs; - ub = extent[dim] - 1; + ext = extent[dim]; rs *= extent[dim]; dim++; } - GFC_DIMENSION_SET(ret->dim[n], 0, ub, stride); + GFC_DIMENSION_SET(ret->dim[n], 0, ext, stride * sizeof(GFC_REAL_8)); } ret->offset = 0; @@ -125,7 +126,7 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source, ret_extent = GFC_DESCRIPTOR_EXTENT(ret,n); if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); if (ret_extent != ncopies) runtime_error("Incorrect extent in return value of SPREAD" @@ -146,8 +147,8 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source, if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -158,7 +159,7 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source, { if (n == along - 1) { - rdelta = GFC_DESCRIPTOR_STRIDE(ret,n); + rdelta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); } else { @@ -166,8 +167,8 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source, extent[dim] = GFC_DESCRIPTOR_EXTENT(source,dim); if (extent[dim] <= 0) zero_sized = 1; - sstride[dim] = GFC_DESCRIPTOR_STRIDE(source,dim); - rstride[dim] = GFC_DESCRIPTOR_STRIDE(ret,n); + sstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,dim); + rstride[dim] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); dim++; } } @@ -246,17 +247,17 @@ spread_scalar_r8 (gfc_array_r8 *ret, const GFC_REAL_8 *source, { ret->base_addr = xmallocarray (ncopies, sizeof (GFC_REAL_8)); ret->offset = 0; - GFC_DIMENSION_SET(ret->dim[0], 0, ncopies - 1, 1); + GFC_DIMENSION_SET(ret->dim[0], 0, ncopies, sizeof (GFC_REAL_8)); } else { if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1) - / GFC_DESCRIPTOR_STRIDE(ret,0)) + / GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0)) runtime_error ("dim too large in spread()"); } dest = ret->base_addr; - stride = GFC_DESCRIPTOR_STRIDE(ret,0); + stride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); for (n = 0; n < ncopies; n++) { diff --git a/libgfortran/generated/sum_c10.c b/libgfortran/generated/sum_c10.c index 176623dfff6..cebcc78b451 100644 --- a/libgfortran/generated/sum_c10.c +++ b/libgfortran/generated/sum_c10.c @@ -60,11 +60,11 @@ sum_c10 (gfc_array_c10 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_c10 (gfc_array_c10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_c10 (gfc_array_c10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_10)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_c10 (gfc_array_c10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_c10 (gfc_array_c10 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_c10 (gfc_array_c10 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_c10 (gfc_array_c10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_c10 (gfc_array_c10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_10); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_c10 (gfc_array_c10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_c10 (gfc_array_c10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_c10 (gfc_array_c10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/sum_c16.c b/libgfortran/generated/sum_c16.c index 055a659304d..b913d926c33 100644 --- a/libgfortran/generated/sum_c16.c +++ b/libgfortran/generated/sum_c16.c @@ -60,11 +60,11 @@ sum_c16 (gfc_array_c16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_c16 (gfc_array_c16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_c16 (gfc_array_c16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_c16 (gfc_array_c16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_c16 (gfc_array_c16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_c16 (gfc_array_c16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_c16 (gfc_array_c16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_c16 (gfc_array_c16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_c16 (gfc_array_c16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_c16 (gfc_array_c16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_c16 (gfc_array_c16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/sum_c4.c b/libgfortran/generated/sum_c4.c index 6fab436b2c4..2e2eac0dd2b 100644 --- a/libgfortran/generated/sum_c4.c +++ b/libgfortran/generated/sum_c4.c @@ -60,11 +60,11 @@ sum_c4 (gfc_array_c4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_c4 (gfc_array_c4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_c4 (gfc_array_c4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_c4 (gfc_array_c4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_c4 (gfc_array_c4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_c4 (gfc_array_c4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_c4 (gfc_array_c4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_c4 (gfc_array_c4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_c4 (gfc_array_c4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_c4 (gfc_array_c4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_c4 (gfc_array_c4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/sum_c8.c b/libgfortran/generated/sum_c8.c index c3d35804d64..150604d7777 100644 --- a/libgfortran/generated/sum_c8.c +++ b/libgfortran/generated/sum_c8.c @@ -60,11 +60,11 @@ sum_c8 (gfc_array_c8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_c8 (gfc_array_c8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_c8 (gfc_array_c8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_COMPLEX_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_c8 (gfc_array_c8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_c8 (gfc_array_c8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_c8 (gfc_array_c8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_c8 (gfc_array_c8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_c8 (gfc_array_c8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_c8 (gfc_array_c8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_c8 (gfc_array_c8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_COMPLEX_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_c8 (gfc_array_c8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/sum_i1.c b/libgfortran/generated/sum_i1.c index 88ee3338b82..050763281fb 100644 --- a/libgfortran/generated/sum_i1.c +++ b/libgfortran/generated/sum_i1.c @@ -60,11 +60,11 @@ sum_i1 (gfc_array_i1 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_1)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_i1 (gfc_array_i1 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_i1 (gfc_array_i1 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_i1 (gfc_array_i1 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_i1 (gfc_array_i1 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_1); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_i1 (gfc_array_i1 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/sum_i16.c b/libgfortran/generated/sum_i16.c index dc35e0709e7..ea5730edc5a 100644 --- a/libgfortran/generated/sum_i16.c +++ b/libgfortran/generated/sum_i16.c @@ -60,11 +60,11 @@ sum_i16 (gfc_array_i16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_i16 (gfc_array_i16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_i16 (gfc_array_i16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_i16 (gfc_array_i16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_i16 (gfc_array_i16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_i16 (gfc_array_i16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/sum_i2.c b/libgfortran/generated/sum_i2.c index 05c08820675..39f82f003d0 100644 --- a/libgfortran/generated/sum_i2.c +++ b/libgfortran/generated/sum_i2.c @@ -60,11 +60,11 @@ sum_i2 (gfc_array_i2 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_2)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_i2 (gfc_array_i2 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_i2 (gfc_array_i2 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_i2 (gfc_array_i2 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_i2 (gfc_array_i2 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_2); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_i2 (gfc_array_i2 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/sum_i4.c b/libgfortran/generated/sum_i4.c index 3653883c4a6..dc195f8da19 100644 --- a/libgfortran/generated/sum_i4.c +++ b/libgfortran/generated/sum_i4.c @@ -60,11 +60,11 @@ sum_i4 (gfc_array_i4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_i4 (gfc_array_i4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_i4 (gfc_array_i4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_i4 (gfc_array_i4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_i4 (gfc_array_i4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_i4 (gfc_array_i4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/sum_i8.c b/libgfortran/generated/sum_i8.c index d2878df6f83..76e44858dec 100644 --- a/libgfortran/generated/sum_i8.c +++ b/libgfortran/generated/sum_i8.c @@ -60,11 +60,11 @@ sum_i8 (gfc_array_i8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_i8 (gfc_array_i8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_i8 (gfc_array_i8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_i8 (gfc_array_i8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_i8 (gfc_array_i8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_INTEGER_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_i8 (gfc_array_i8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/sum_r10.c b/libgfortran/generated/sum_r10.c index cb5169c8a75..7d7d7d088a8 100644 --- a/libgfortran/generated/sum_r10.c +++ b/libgfortran/generated/sum_r10.c @@ -60,11 +60,11 @@ sum_r10 (gfc_array_r10 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_r10 (gfc_array_r10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_10)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_r10 (gfc_array_r10 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_r10 (gfc_array_r10 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_r10 (gfc_array_r10 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_r10 (gfc_array_r10 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_10); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_r10 (gfc_array_r10 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/sum_r16.c b/libgfortran/generated/sum_r16.c index 6c67f295f41..1e591481d4e 100644 --- a/libgfortran/generated/sum_r16.c +++ b/libgfortran/generated/sum_r16.c @@ -60,11 +60,11 @@ sum_r16 (gfc_array_r16 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_r16 (gfc_array_r16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_16)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_r16 (gfc_array_r16 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_r16 (gfc_array_r16 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_r16 (gfc_array_r16 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_r16 (gfc_array_r16 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_16); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_r16 (gfc_array_r16 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/sum_r4.c b/libgfortran/generated/sum_r4.c index a3a4b59cee6..f601117a739 100644 --- a/libgfortran/generated/sum_r4.c +++ b/libgfortran/generated/sum_r4.c @@ -60,11 +60,11 @@ sum_r4 (gfc_array_r4 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_r4 (gfc_array_r4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_4)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_r4 (gfc_array_r4 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_r4 (gfc_array_r4 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_r4 (gfc_array_r4 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_r4 (gfc_array_r4 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_4); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_r4 (gfc_array_r4 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/sum_r8.c b/libgfortran/generated/sum_r8.c index 0cbf649db2a..98b43d1719f 100644 --- a/libgfortran/generated/sum_r8.c +++ b/libgfortran/generated/sum_r8.c @@ -60,11 +60,11 @@ sum_r8 (gfc_array_r8 * const restrict retarray, len = GFC_DESCRIPTOR_EXTENT(array,dim); if (len < 0) len = 0; - delta = GFC_DESCRIPTOR_STRIDE(array,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -72,7 +72,7 @@ sum_r8 (gfc_array_r8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -81,23 +81,24 @@ sum_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_REAL_8)); if (alloc_size == 0) @@ -124,7 +125,7 @@ sum_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -222,7 +223,7 @@ msum_r8 (gfc_array_r8 * const restrict retarray, mbase = mask->base_addr; - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -233,13 +234,13 @@ msum_r8 (gfc_array_r8 * const restrict retarray, else runtime_error ("Funny sized logical array"); - delta = GFC_DESCRIPTOR_STRIDE(array,dim); - mdelta = GFC_DESCRIPTOR_STRIDE_BYTES(mask,dim); + delta = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,dim); + mdelta = GFC_DESCRIPTOR_SM(mask,dim); for (n = 0; n < dim; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); if (extent[n] < 0) @@ -248,8 +249,8 @@ msum_r8 (gfc_array_r8 * const restrict retarray, } for (n = dim; n < rank; n++) { - sstride[n] = GFC_DESCRIPTOR_STRIDE(array,n + 1); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask, n + 1); + sstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(array,n + 1); + mstride[n] = GFC_DESCRIPTOR_SM(mask, n + 1); extent[n] = GFC_DESCRIPTOR_EXTENT(array, n + 1); if (extent[n] < 0) @@ -258,23 +259,24 @@ msum_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm ; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str= GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; + sm = GFC_DESCRIPTOR_SM (retarray, n-1) * extent[n-1]; - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; + retarray->elem_len = array->elem_len; + retarray->type = array->type; if (alloc_size == 0) { @@ -303,7 +305,7 @@ msum_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); if (extent[n] <= 0) return; } @@ -412,23 +414,23 @@ ssum_r8 (gfc_array_r8 * const restrict retarray, if (retarray->base_addr == NULL) { - size_t alloc_size, str; + size_t alloc_size, sm; for (n = 0; n < rank; n++) { if (n == 0) - str = 1; + sm = sizeof (GFC_REAL_8); else - str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; - - GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); + sm = GFC_DESCRIPTOR_SM (retarray,n-1) * extent[n-1]; + GFC_DIMENSION_SET (retarray->dim[n], 0, extent[n], sm); } + retarray->elem_len = array->elem_len; + retarray->type = array->type; retarray->offset = 0; - retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; - alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; + alloc_size = GFC_DESCRIPTOR_SM (retarray, rank-1) * extent[rank-1]; if (alloc_size == 0) { @@ -466,7 +468,7 @@ ssum_r8 (gfc_array_r8 * const restrict retarray, for (n = 0; n < rank; n++) { count[n] = 0; - dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); + dstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(retarray,n); } dest = retarray->base_addr; diff --git a/libgfortran/generated/transpose_c10.c b/libgfortran/generated/transpose_c10.c index bd201220923..e746cef0e96 100644 --- a/libgfortran/generated/transpose_c10.c +++ b/libgfortran/generated/transpose_c10.c @@ -52,13 +52,13 @@ transpose_c10 (gfc_array_c10 * const restrict ret, if (ret->base_addr == NULL) { assert (GFC_DESCRIPTOR_RANK (ret) == 2); - assert (ret->dtype == source->dtype); + assert (ret->type == source->type); - GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1, - 1); + GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1), + sizeof (GFC_COMPLEX_10)); - GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1, - GFC_DESCRIPTOR_EXTENT(source, 1)); + GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0), + GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_COMPLEX_10)); ret->base_addr = xmallocarray (size0 ((array_t *) ret), sizeof (GFC_COMPLEX_10)); @@ -87,13 +87,13 @@ transpose_c10 (gfc_array_c10 * const restrict ret, } - sxstride = GFC_DESCRIPTOR_STRIDE(source,0); - systride = GFC_DESCRIPTOR_STRIDE(source,1); + sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0); + systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1); xcount = GFC_DESCRIPTOR_EXTENT(source,0); ycount = GFC_DESCRIPTOR_EXTENT(source,1); - rxstride = GFC_DESCRIPTOR_STRIDE(ret,0); - rystride = GFC_DESCRIPTOR_STRIDE(ret,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1); rptr = ret->base_addr; sptr = source->base_addr; diff --git a/libgfortran/generated/transpose_c16.c b/libgfortran/generated/transpose_c16.c index 044509f67f0..bd11080ce32 100644 --- a/libgfortran/generated/transpose_c16.c +++ b/libgfortran/generated/transpose_c16.c @@ -52,13 +52,13 @@ transpose_c16 (gfc_array_c16 * const restrict ret, if (ret->base_addr == NULL) { assert (GFC_DESCRIPTOR_RANK (ret) == 2); - assert (ret->dtype == source->dtype); + assert (ret->type == source->type); - GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1, - 1); + GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1), + sizeof (GFC_COMPLEX_16)); - GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1, - GFC_DESCRIPTOR_EXTENT(source, 1)); + GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0), + GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_COMPLEX_16)); ret->base_addr = xmallocarray (size0 ((array_t *) ret), sizeof (GFC_COMPLEX_16)); @@ -87,13 +87,13 @@ transpose_c16 (gfc_array_c16 * const restrict ret, } - sxstride = GFC_DESCRIPTOR_STRIDE(source,0); - systride = GFC_DESCRIPTOR_STRIDE(source,1); + sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0); + systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1); xcount = GFC_DESCRIPTOR_EXTENT(source,0); ycount = GFC_DESCRIPTOR_EXTENT(source,1); - rxstride = GFC_DESCRIPTOR_STRIDE(ret,0); - rystride = GFC_DESCRIPTOR_STRIDE(ret,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1); rptr = ret->base_addr; sptr = source->base_addr; diff --git a/libgfortran/generated/transpose_c4.c b/libgfortran/generated/transpose_c4.c index c6dd90580e6..edd62b3a63f 100644 --- a/libgfortran/generated/transpose_c4.c +++ b/libgfortran/generated/transpose_c4.c @@ -52,13 +52,13 @@ transpose_c4 (gfc_array_c4 * const restrict ret, if (ret->base_addr == NULL) { assert (GFC_DESCRIPTOR_RANK (ret) == 2); - assert (ret->dtype == source->dtype); + assert (ret->type == source->type); - GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1, - 1); + GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1), + sizeof (GFC_COMPLEX_4)); - GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1, - GFC_DESCRIPTOR_EXTENT(source, 1)); + GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0), + GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_COMPLEX_4)); ret->base_addr = xmallocarray (size0 ((array_t *) ret), sizeof (GFC_COMPLEX_4)); @@ -87,13 +87,13 @@ transpose_c4 (gfc_array_c4 * const restrict ret, } - sxstride = GFC_DESCRIPTOR_STRIDE(source,0); - systride = GFC_DESCRIPTOR_STRIDE(source,1); + sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0); + systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1); xcount = GFC_DESCRIPTOR_EXTENT(source,0); ycount = GFC_DESCRIPTOR_EXTENT(source,1); - rxstride = GFC_DESCRIPTOR_STRIDE(ret,0); - rystride = GFC_DESCRIPTOR_STRIDE(ret,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1); rptr = ret->base_addr; sptr = source->base_addr; diff --git a/libgfortran/generated/transpose_c8.c b/libgfortran/generated/transpose_c8.c index cd5926bf843..014a9ef3298 100644 --- a/libgfortran/generated/transpose_c8.c +++ b/libgfortran/generated/transpose_c8.c @@ -52,13 +52,13 @@ transpose_c8 (gfc_array_c8 * const restrict ret, if (ret->base_addr == NULL) { assert (GFC_DESCRIPTOR_RANK (ret) == 2); - assert (ret->dtype == source->dtype); + assert (ret->type == source->type); - GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1, - 1); + GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1), + sizeof (GFC_COMPLEX_8)); - GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1, - GFC_DESCRIPTOR_EXTENT(source, 1)); + GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0), + GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_COMPLEX_8)); ret->base_addr = xmallocarray (size0 ((array_t *) ret), sizeof (GFC_COMPLEX_8)); @@ -87,13 +87,13 @@ transpose_c8 (gfc_array_c8 * const restrict ret, } - sxstride = GFC_DESCRIPTOR_STRIDE(source,0); - systride = GFC_DESCRIPTOR_STRIDE(source,1); + sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0); + systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1); xcount = GFC_DESCRIPTOR_EXTENT(source,0); ycount = GFC_DESCRIPTOR_EXTENT(source,1); - rxstride = GFC_DESCRIPTOR_STRIDE(ret,0); - rystride = GFC_DESCRIPTOR_STRIDE(ret,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1); rptr = ret->base_addr; sptr = source->base_addr; diff --git a/libgfortran/generated/transpose_i16.c b/libgfortran/generated/transpose_i16.c index 44aff01ff5f..76941458a39 100644 --- a/libgfortran/generated/transpose_i16.c +++ b/libgfortran/generated/transpose_i16.c @@ -52,13 +52,13 @@ transpose_i16 (gfc_array_i16 * const restrict ret, if (ret->base_addr == NULL) { assert (GFC_DESCRIPTOR_RANK (ret) == 2); - assert (ret->dtype == source->dtype); + assert (ret->type == source->type); - GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1, - 1); + GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1), + sizeof (GFC_INTEGER_16)); - GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1, - GFC_DESCRIPTOR_EXTENT(source, 1)); + GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0), + GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_INTEGER_16)); ret->base_addr = xmallocarray (size0 ((array_t *) ret), sizeof (GFC_INTEGER_16)); @@ -87,13 +87,13 @@ transpose_i16 (gfc_array_i16 * const restrict ret, } - sxstride = GFC_DESCRIPTOR_STRIDE(source,0); - systride = GFC_DESCRIPTOR_STRIDE(source,1); + sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0); + systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1); xcount = GFC_DESCRIPTOR_EXTENT(source,0); ycount = GFC_DESCRIPTOR_EXTENT(source,1); - rxstride = GFC_DESCRIPTOR_STRIDE(ret,0); - rystride = GFC_DESCRIPTOR_STRIDE(ret,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1); rptr = ret->base_addr; sptr = source->base_addr; diff --git a/libgfortran/generated/transpose_i4.c b/libgfortran/generated/transpose_i4.c index e6844fccbd9..0eb2ea414d2 100644 --- a/libgfortran/generated/transpose_i4.c +++ b/libgfortran/generated/transpose_i4.c @@ -52,13 +52,13 @@ transpose_i4 (gfc_array_i4 * const restrict ret, if (ret->base_addr == NULL) { assert (GFC_DESCRIPTOR_RANK (ret) == 2); - assert (ret->dtype == source->dtype); + assert (ret->type == source->type); - GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1, - 1); + GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1), + sizeof (GFC_INTEGER_4)); - GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1, - GFC_DESCRIPTOR_EXTENT(source, 1)); + GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0), + GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_INTEGER_4)); ret->base_addr = xmallocarray (size0 ((array_t *) ret), sizeof (GFC_INTEGER_4)); @@ -87,13 +87,13 @@ transpose_i4 (gfc_array_i4 * const restrict ret, } - sxstride = GFC_DESCRIPTOR_STRIDE(source,0); - systride = GFC_DESCRIPTOR_STRIDE(source,1); + sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0); + systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1); xcount = GFC_DESCRIPTOR_EXTENT(source,0); ycount = GFC_DESCRIPTOR_EXTENT(source,1); - rxstride = GFC_DESCRIPTOR_STRIDE(ret,0); - rystride = GFC_DESCRIPTOR_STRIDE(ret,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1); rptr = ret->base_addr; sptr = source->base_addr; diff --git a/libgfortran/generated/transpose_i8.c b/libgfortran/generated/transpose_i8.c index df4a28af2b5..7a77e329d9b 100644 --- a/libgfortran/generated/transpose_i8.c +++ b/libgfortran/generated/transpose_i8.c @@ -52,13 +52,13 @@ transpose_i8 (gfc_array_i8 * const restrict ret, if (ret->base_addr == NULL) { assert (GFC_DESCRIPTOR_RANK (ret) == 2); - assert (ret->dtype == source->dtype); + assert (ret->type == source->type); - GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1, - 1); + GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1), + sizeof (GFC_INTEGER_8)); - GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1, - GFC_DESCRIPTOR_EXTENT(source, 1)); + GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0), + GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_INTEGER_8)); ret->base_addr = xmallocarray (size0 ((array_t *) ret), sizeof (GFC_INTEGER_8)); @@ -87,13 +87,13 @@ transpose_i8 (gfc_array_i8 * const restrict ret, } - sxstride = GFC_DESCRIPTOR_STRIDE(source,0); - systride = GFC_DESCRIPTOR_STRIDE(source,1); + sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0); + systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1); xcount = GFC_DESCRIPTOR_EXTENT(source,0); ycount = GFC_DESCRIPTOR_EXTENT(source,1); - rxstride = GFC_DESCRIPTOR_STRIDE(ret,0); - rystride = GFC_DESCRIPTOR_STRIDE(ret,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1); rptr = ret->base_addr; sptr = source->base_addr; diff --git a/libgfortran/generated/transpose_r10.c b/libgfortran/generated/transpose_r10.c index 2ce05798b3d..b1232984054 100644 --- a/libgfortran/generated/transpose_r10.c +++ b/libgfortran/generated/transpose_r10.c @@ -52,13 +52,13 @@ transpose_r10 (gfc_array_r10 * const restrict ret, if (ret->base_addr == NULL) { assert (GFC_DESCRIPTOR_RANK (ret) == 2); - assert (ret->dtype == source->dtype); + assert (ret->type == source->type); - GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1, - 1); + GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1), + sizeof (GFC_REAL_10)); - GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1, - GFC_DESCRIPTOR_EXTENT(source, 1)); + GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0), + GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_REAL_10)); ret->base_addr = xmallocarray (size0 ((array_t *) ret), sizeof (GFC_REAL_10)); @@ -87,13 +87,13 @@ transpose_r10 (gfc_array_r10 * const restrict ret, } - sxstride = GFC_DESCRIPTOR_STRIDE(source,0); - systride = GFC_DESCRIPTOR_STRIDE(source,1); + sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0); + systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1); xcount = GFC_DESCRIPTOR_EXTENT(source,0); ycount = GFC_DESCRIPTOR_EXTENT(source,1); - rxstride = GFC_DESCRIPTOR_STRIDE(ret,0); - rystride = GFC_DESCRIPTOR_STRIDE(ret,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1); rptr = ret->base_addr; sptr = source->base_addr; diff --git a/libgfortran/generated/transpose_r16.c b/libgfortran/generated/transpose_r16.c index 5009d16cc13..fb853c2a2c7 100644 --- a/libgfortran/generated/transpose_r16.c +++ b/libgfortran/generated/transpose_r16.c @@ -52,13 +52,13 @@ transpose_r16 (gfc_array_r16 * const restrict ret, if (ret->base_addr == NULL) { assert (GFC_DESCRIPTOR_RANK (ret) == 2); - assert (ret->dtype == source->dtype); + assert (ret->type == source->type); - GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1, - 1); + GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1), + sizeof (GFC_REAL_16)); - GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1, - GFC_DESCRIPTOR_EXTENT(source, 1)); + GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0), + GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_REAL_16)); ret->base_addr = xmallocarray (size0 ((array_t *) ret), sizeof (GFC_REAL_16)); @@ -87,13 +87,13 @@ transpose_r16 (gfc_array_r16 * const restrict ret, } - sxstride = GFC_DESCRIPTOR_STRIDE(source,0); - systride = GFC_DESCRIPTOR_STRIDE(source,1); + sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0); + systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1); xcount = GFC_DESCRIPTOR_EXTENT(source,0); ycount = GFC_DESCRIPTOR_EXTENT(source,1); - rxstride = GFC_DESCRIPTOR_STRIDE(ret,0); - rystride = GFC_DESCRIPTOR_STRIDE(ret,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1); rptr = ret->base_addr; sptr = source->base_addr; diff --git a/libgfortran/generated/transpose_r4.c b/libgfortran/generated/transpose_r4.c index 71f70fcd9b0..98bad752bf2 100644 --- a/libgfortran/generated/transpose_r4.c +++ b/libgfortran/generated/transpose_r4.c @@ -52,13 +52,13 @@ transpose_r4 (gfc_array_r4 * const restrict ret, if (ret->base_addr == NULL) { assert (GFC_DESCRIPTOR_RANK (ret) == 2); - assert (ret->dtype == source->dtype); + assert (ret->type == source->type); - GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1, - 1); + GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1), + sizeof (GFC_REAL_4)); - GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1, - GFC_DESCRIPTOR_EXTENT(source, 1)); + GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0), + GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_REAL_4)); ret->base_addr = xmallocarray (size0 ((array_t *) ret), sizeof (GFC_REAL_4)); @@ -87,13 +87,13 @@ transpose_r4 (gfc_array_r4 * const restrict ret, } - sxstride = GFC_DESCRIPTOR_STRIDE(source,0); - systride = GFC_DESCRIPTOR_STRIDE(source,1); + sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0); + systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1); xcount = GFC_DESCRIPTOR_EXTENT(source,0); ycount = GFC_DESCRIPTOR_EXTENT(source,1); - rxstride = GFC_DESCRIPTOR_STRIDE(ret,0); - rystride = GFC_DESCRIPTOR_STRIDE(ret,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1); rptr = ret->base_addr; sptr = source->base_addr; diff --git a/libgfortran/generated/transpose_r8.c b/libgfortran/generated/transpose_r8.c index 9f541e0fb7e..17926bddab7 100644 --- a/libgfortran/generated/transpose_r8.c +++ b/libgfortran/generated/transpose_r8.c @@ -52,13 +52,13 @@ transpose_r8 (gfc_array_r8 * const restrict ret, if (ret->base_addr == NULL) { assert (GFC_DESCRIPTOR_RANK (ret) == 2); - assert (ret->dtype == source->dtype); + assert (ret->type == source->type); - GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1) - 1, - 1); + GFC_DIMENSION_SET(ret->dim[0], 0, GFC_DESCRIPTOR_EXTENT(source,1), + sizeof (GFC_REAL_8)); - GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0) - 1, - GFC_DESCRIPTOR_EXTENT(source, 1)); + GFC_DIMENSION_SET(ret->dim[1], 0, GFC_DESCRIPTOR_EXTENT(source,0), + GFC_DESCRIPTOR_EXTENT(source, 1)*sizeof (GFC_REAL_8)); ret->base_addr = xmallocarray (size0 ((array_t *) ret), sizeof (GFC_REAL_8)); @@ -87,13 +87,13 @@ transpose_r8 (gfc_array_r8 * const restrict ret, } - sxstride = GFC_DESCRIPTOR_STRIDE(source,0); - systride = GFC_DESCRIPTOR_STRIDE(source,1); + sxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,0); + systride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(source,1); xcount = GFC_DESCRIPTOR_EXTENT(source,0); ycount = GFC_DESCRIPTOR_EXTENT(source,1); - rxstride = GFC_DESCRIPTOR_STRIDE(ret,0); - rystride = GFC_DESCRIPTOR_STRIDE(ret,1); + rxstride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,0); + rystride = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,1); rptr = ret->base_addr; sptr = source->base_addr; diff --git a/libgfortran/generated/unpack_c10.c b/libgfortran/generated/unpack_c10.c index 6fc2bdc8796..57a53f1a6f7 100644 --- a/libgfortran/generated/unpack_c10.c +++ b/libgfortran/generated/unpack_c10.c @@ -66,7 +66,7 @@ unpack0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_COMPLEX_10)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_COMPLEX_10)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; diff --git a/libgfortran/generated/unpack_c16.c b/libgfortran/generated/unpack_c16.c index 443a51eea04..1e6e1cf7652 100644 --- a/libgfortran/generated/unpack_c16.c +++ b/libgfortran/generated/unpack_c16.c @@ -66,7 +66,7 @@ unpack0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_COMPLEX_16)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_COMPLEX_16)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; diff --git a/libgfortran/generated/unpack_c4.c b/libgfortran/generated/unpack_c4.c index c8b30f5e6d6..4bfe5f750ee 100644 --- a/libgfortran/generated/unpack_c4.c +++ b/libgfortran/generated/unpack_c4.c @@ -66,7 +66,7 @@ unpack0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_COMPLEX_4)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_COMPLEX_4)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; diff --git a/libgfortran/generated/unpack_c8.c b/libgfortran/generated/unpack_c8.c index 60d9de1b650..4800498767e 100644 --- a/libgfortran/generated/unpack_c8.c +++ b/libgfortran/generated/unpack_c8.c @@ -66,7 +66,7 @@ unpack0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_COMPLEX_8)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_COMPLEX_8)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; diff --git a/libgfortran/generated/unpack_i1.c b/libgfortran/generated/unpack_i1.c index 522ce74a9fd..51101e0ddf0 100644 --- a/libgfortran/generated/unpack_i1.c +++ b/libgfortran/generated/unpack_i1.c @@ -66,7 +66,7 @@ unpack0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_INTEGER_1)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_INTEGER_1)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; diff --git a/libgfortran/generated/unpack_i16.c b/libgfortran/generated/unpack_i16.c index 7e0d1f766d5..feaed3dec65 100644 --- a/libgfortran/generated/unpack_i16.c +++ b/libgfortran/generated/unpack_i16.c @@ -66,7 +66,7 @@ unpack0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_INTEGER_16)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_INTEGER_16)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; diff --git a/libgfortran/generated/unpack_i2.c b/libgfortran/generated/unpack_i2.c index b0d21dc246f..45e0aa0cb55 100644 --- a/libgfortran/generated/unpack_i2.c +++ b/libgfortran/generated/unpack_i2.c @@ -66,7 +66,7 @@ unpack0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_INTEGER_2)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_INTEGER_2)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; diff --git a/libgfortran/generated/unpack_i4.c b/libgfortran/generated/unpack_i4.c index beac1969a5d..c58287ae037 100644 --- a/libgfortran/generated/unpack_i4.c +++ b/libgfortran/generated/unpack_i4.c @@ -66,7 +66,7 @@ unpack0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_INTEGER_4)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_INTEGER_4)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; diff --git a/libgfortran/generated/unpack_i8.c b/libgfortran/generated/unpack_i8.c index 75cd2e93fe4..3c1c1afe695 100644 --- a/libgfortran/generated/unpack_i8.c +++ b/libgfortran/generated/unpack_i8.c @@ -66,7 +66,7 @@ unpack0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_INTEGER_8)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_INTEGER_8)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; diff --git a/libgfortran/generated/unpack_r10.c b/libgfortran/generated/unpack_r10.c index 926a45777ae..e2737a625f3 100644 --- a/libgfortran/generated/unpack_r10.c +++ b/libgfortran/generated/unpack_r10.c @@ -66,7 +66,7 @@ unpack0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_REAL_10)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_REAL_10)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; diff --git a/libgfortran/generated/unpack_r16.c b/libgfortran/generated/unpack_r16.c index 6fff184cdfa..8ce95c800a5 100644 --- a/libgfortran/generated/unpack_r16.c +++ b/libgfortran/generated/unpack_r16.c @@ -66,7 +66,7 @@ unpack0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_REAL_16)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_REAL_16)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; diff --git a/libgfortran/generated/unpack_r4.c b/libgfortran/generated/unpack_r4.c index c9008745f3a..2e977ad466c 100644 --- a/libgfortran/generated/unpack_r4.c +++ b/libgfortran/generated/unpack_r4.c @@ -66,7 +66,7 @@ unpack0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_REAL_4)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_REAL_4)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; diff --git a/libgfortran/generated/unpack_r8.c b/libgfortran/generated/unpack_r8.c index 5999a51ab68..249f6654e49 100644 --- a/libgfortran/generated/unpack_r8.c +++ b/libgfortran/generated/unpack_r8.c @@ -66,7 +66,7 @@ unpack0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -91,11 +91,12 @@ unpack0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_REAL_8)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -109,8 +110,8 @@ unpack0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -122,7 +123,7 @@ unpack0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; @@ -210,7 +211,7 @@ unpack1_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector, /* Use the same loop for all logical types, by using GFC_LOGICAL_1 and using shifting to address size and endian issues. */ - mask_kind = GFC_DESCRIPTOR_SIZE (mask); + mask_kind = GFC_DESCRIPTOR_ELEM_LEN (mask); if (mask_kind == 1 || mask_kind == 2 || mask_kind == 4 || mask_kind == 8 #ifdef HAVE_GFC_LOGICAL_16 @@ -235,12 +236,13 @@ unpack1_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector, { count[n] = 0; GFC_DIMENSION_SET(ret->dim[n], 0, - GFC_DESCRIPTOR_EXTENT(mask,n) - 1, rs); + GFC_DESCRIPTOR_EXTENT(mask,n), + rs * sizeof (GFC_REAL_8)); extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); rs *= extent[n]; } ret->offset = 0; @@ -254,9 +256,9 @@ unpack1_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector, count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(ret,n); empty = empty || extent[n] <= 0; - rstride[n] = GFC_DESCRIPTOR_STRIDE(ret,n); - fstride[n] = GFC_DESCRIPTOR_STRIDE(field,n); - mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); + rstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(ret,n); + fstride[n] = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(field,n); + mstride[n] = GFC_DESCRIPTOR_SM(mask,n); } if (rstride[0] == 0) rstride[0] = 1; @@ -270,7 +272,7 @@ unpack1_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector, if (mstride[0] == 0) mstride[0] = 1; - vstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + vstride0 = GFC_DESCRIPTOR_STRIDE_TYPEKNOWN(vector,0); if (vstride0 == 0) vstride0 = 1; rstride0 = rstride[0]; |