Index: gcc/libgfortran/generated/count_1_l.c |
diff --git a/gcc/libgfortran/generated/count_1_l.c b/gcc/libgfortran/generated/count_1_l.c |
index a236897592369bf85315168fbbf29e9bca810efb..faf9176943c3cac2de23319052251de1044f334b 100644 |
--- a/gcc/libgfortran/generated/count_1_l.c |
+++ b/gcc/libgfortran/generated/count_1_l.c |
@@ -60,25 +60,24 @@ count_1_l (gfc_array_i1 * const restrict retarray, |
src_kind = GFC_DESCRIPTOR_SIZE (array); |
- len = array->dim[dim].ubound + 1 - array->dim[dim].lbound; |
+ len = GFC_DESCRIPTOR_EXTENT(array,dim); |
if (len < 0) |
len = 0; |
- delta = array->dim[dim].stride * src_kind; |
+ delta = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim); |
for (n = 0; n < dim; n++) |
{ |
- sstride[n] = array->dim[n].stride * src_kind; |
- extent[n] = array->dim[n].ubound + 1 - array->dim[n].lbound; |
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); |
+ extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); |
if (extent[n] < 0) |
extent[n] = 0; |
} |
for (n = dim; n < rank; n++) |
{ |
- sstride[n] = array->dim[n + 1].stride * src_kind; |
- extent[n] = |
- array->dim[n + 1].ubound + 1 - array->dim[n + 1].lbound; |
+ sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n + 1); |
+ extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1); |
if (extent[n] < 0) |
extent[n] = 0; |
@@ -86,29 +85,29 @@ count_1_l (gfc_array_i1 * const restrict retarray, |
if (retarray->data == NULL) |
{ |
- size_t alloc_size; |
+ size_t alloc_size, str; |
for (n = 0; n < rank; n++) |
{ |
- retarray->dim[n].lbound = 0; |
- retarray->dim[n].ubound = extent[n]-1; |
if (n == 0) |
- retarray->dim[n].stride = 1; |
+ str = 1; |
else |
- retarray->dim[n].stride = retarray->dim[n-1].stride * extent[n-1]; |
+ str = GFC_DESCRIPTOR_STRIDE(retarray,n-1) * extent[n-1]; |
+ |
+ GFC_DIMENSION_SET(retarray->dim[n], 0, extent[n] - 1, str); |
+ |
} |
retarray->offset = 0; |
retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank; |
- alloc_size = sizeof (GFC_INTEGER_1) * retarray->dim[rank-1].stride |
+ alloc_size = sizeof (GFC_INTEGER_1) * GFC_DESCRIPTOR_STRIDE(retarray,rank-1) |
* extent[rank-1]; |
if (alloc_size == 0) |
{ |
/* Make sure we have a zero-sized array. */ |
- retarray->dim[0].lbound = 0; |
- retarray->dim[0].ubound = -1; |
+ GFC_DIMENSION_SET(retarray->dim[0], 0, -1, 1); |
return; |
} |
else |
@@ -128,8 +127,7 @@ count_1_l (gfc_array_i1 * const restrict retarray, |
{ |
index_type ret_extent; |
- ret_extent = retarray->dim[n].ubound + 1 |
- - retarray->dim[n].lbound; |
+ ret_extent = GFC_DESCRIPTOR_EXTENT(retarray,n); |
if (extent[n] != ret_extent) |
runtime_error ("Incorrect extent in return value of" |
" COUNT intrinsic in dimension %d:" |
@@ -142,7 +140,7 @@ count_1_l (gfc_array_i1 * const restrict retarray, |
for (n = 0; n < rank; n++) |
{ |
count[n] = 0; |
- dstride[n] = retarray->dim[n].stride; |
+ dstride[n] = GFC_DESCRIPTOR_STRIDE(retarray,n); |
if (extent[n] <= 0) |
len = 0; |
} |