Index: gcc/libgfortran/intrinsics/size.c |
diff --git a/gcc/libgfortran/intrinsics/size.c b/gcc/libgfortran/intrinsics/size.c |
index 9aa4cd93374d3d581839d7b353a9047036cd69a3..6127c4ef3012c1bb73ebe4cb81f7b0738f06e7ab 100644 |
--- a/gcc/libgfortran/intrinsics/size.c |
+++ b/gcc/libgfortran/intrinsics/size.c |
@@ -35,7 +35,7 @@ size0 (const array_t * array) |
size = 1; |
for (n = 0; n < GFC_DESCRIPTOR_RANK (array); n++) |
{ |
- len = array->dim[n].ubound + 1 - array->dim[n].lbound; |
+ len = GFC_DESCRIPTOR_EXTENT(array,n); |
if (len < 0) |
len = 0; |
size *= len; |
@@ -54,7 +54,7 @@ size1 (const array_t * array, index_type dim) |
dim--; |
- size = array->dim[dim].ubound + 1 - array->dim[dim].lbound; |
+ size = GFC_DESCRIPTOR_EXTENT(array,dim); |
if (size < 0) |
size = 0; |
return size; |