diff options
author | fxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-19 21:48:50 +0000 |
---|---|---|
committer | fxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-19 21:48:50 +0000 |
commit | 81499f286c30744e70b97127a45e6995cfe1027d (patch) | |
tree | 25894134c7e725dd6026b7d0c821b145999ec721 /libgfortran/intrinsics/spread_generic.c | |
parent | 81035ec1299c5ee26e838bb28dfe87801d53e51d (diff) |
PR libfortran/27895
* intrinsics/cshift0.c: Special cases for zero-sized arrays.
* intrinsics/pack_generic.c: Likewise.
* intrinsics/spread_generic.c: Likewise.
* gfortran.dg/zero_sized_1.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117890 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/intrinsics/spread_generic.c')
-rw-r--r-- | libgfortran/intrinsics/spread_generic.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libgfortran/intrinsics/spread_generic.c b/libgfortran/intrinsics/spread_generic.c index cbc5c4985dff..9ea6b12ef16d 100644 --- a/libgfortran/intrinsics/spread_generic.c +++ b/libgfortran/intrinsics/spread_generic.c @@ -101,7 +101,13 @@ spread_internal (gfc_array_char *ret, const gfc_array_char *source, } } ret->offset = 0; - ret->data = internal_malloc_size (rs * size); + if (rs > 0) + ret->data = internal_malloc_size (rs * size); + else + { + ret->data = internal_malloc_size (1); + return; + } } else { |