diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2008-01-28 19:02:47 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2008-01-28 19:02:47 +0000 |
commit | bc81405676677a2216476eaebc34d23adf855f83 (patch) | |
tree | f3defc970bf3f58cf76fd6a1f8460b336a94a3f8 /libgfortran/generated | |
parent | 2aa42e6e3bc7853d53a8231664a6efb0e87f944e (diff) | |
download | gcc-bc81405676677a2216476eaebc34d23adf855f83.tar.gz |
re PR libfortran/34980 (Segfault in shape given a scalar)
2008-01-27 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/34980
* m4/shape.m4: If return array is empty, return early.
* generated/shape_i4.c: Regenerated.
* generated/shape_i8.c: Regenerated.
* generated/shape_i16.c: Regenerated.
From-SVN: r131915
Diffstat (limited to 'libgfortran/generated')
-rw-r--r-- | libgfortran/generated/shape_i16.c | 3 | ||||
-rw-r--r-- | libgfortran/generated/shape_i4.c | 3 | ||||
-rw-r--r-- | libgfortran/generated/shape_i8.c | 3 |
3 files changed, 9 insertions, 0 deletions
diff --git a/libgfortran/generated/shape_i16.c b/libgfortran/generated/shape_i16.c index a89c70acef8..77274d6002a 100644 --- a/libgfortran/generated/shape_i16.c +++ b/libgfortran/generated/shape_i16.c @@ -48,6 +48,9 @@ shape_16 (gfc_array_i16 * const restrict ret, stride = ret->dim[0].stride; + if (ret->dim[0].ubound < ret->dim[0].lbound) + return; + for (n = 0; n < GFC_DESCRIPTOR_RANK (array); n++) { ret->data[n * stride] = diff --git a/libgfortran/generated/shape_i4.c b/libgfortran/generated/shape_i4.c index 4f6d62e6af7..787ba544c21 100644 --- a/libgfortran/generated/shape_i4.c +++ b/libgfortran/generated/shape_i4.c @@ -48,6 +48,9 @@ shape_4 (gfc_array_i4 * const restrict ret, stride = ret->dim[0].stride; + if (ret->dim[0].ubound < ret->dim[0].lbound) + return; + for (n = 0; n < GFC_DESCRIPTOR_RANK (array); n++) { ret->data[n * stride] = diff --git a/libgfortran/generated/shape_i8.c b/libgfortran/generated/shape_i8.c index a4a0ff0e2d5..f318b170ab9 100644 --- a/libgfortran/generated/shape_i8.c +++ b/libgfortran/generated/shape_i8.c @@ -48,6 +48,9 @@ shape_8 (gfc_array_i8 * const restrict ret, stride = ret->dim[0].stride; + if (ret->dim[0].ubound < ret->dim[0].lbound) + return; + for (n = 0; n < GFC_DESCRIPTOR_RANK (array); n++) { ret->data[n * stride] = |