summaryrefslogtreecommitdiff
path: root/libgfortran/generated/shape_i4.c
diff options
context:
space:
mode:
authortkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4>2008-02-02 13:50:55 +0000
committertkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4>2008-02-02 13:50:55 +0000
commit056eb8d962fff9d8984214fe48cec01d8f6e89d1 (patch)
tree41b636e47d1922843adc517116bfd40c4acb7428 /libgfortran/generated/shape_i4.c
parent957fb0833055c483ae1594a0c04080666760d44c (diff)
downloadgcc-056eb8d962fff9d8984214fe48cec01d8f6e89d1.tar.gz
2008-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/35001 * m4/shape.m4: Return 0 for extents <= 0. * generated/shape_i4.c: Regenerated. * generated/shape_i8.c: Regenerated. * generated/shape_i16.c: Regenerated. 2008-02-02 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/35001 * gfortran.dg/shape_4.f90: New test. Fixed in regression-only mode by special dispense (see the PR). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132070 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/generated/shape_i4.c')
-rw-r--r--libgfortran/generated/shape_i4.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libgfortran/generated/shape_i4.c b/libgfortran/generated/shape_i4.c
index 787ba544c21..64a6fcdb994 100644
--- a/libgfortran/generated/shape_i4.c
+++ b/libgfortran/generated/shape_i4.c
@@ -45,6 +45,7 @@ shape_4 (gfc_array_i4 * const restrict ret,
{
int n;
index_type stride;
+ index_type extent;
stride = ret->dim[0].stride;
@@ -53,8 +54,8 @@ shape_4 (gfc_array_i4 * const restrict ret,
for (n = 0; n < GFC_DESCRIPTOR_RANK (array); n++)
{
- ret->data[n * stride] =
- array->dim[n].ubound + 1 - array->dim[n].lbound;
+ extent = array->dim[n].ubound + 1 - array->dim[n].lbound;
+ ret->data[n * stride] = extent > 0 ? extent : 0 ;
}
}