summaryrefslogtreecommitdiff
path: root/libgfortran/intrinsics/spread_generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgfortran/intrinsics/spread_generic.c')
-rw-r--r--libgfortran/intrinsics/spread_generic.c8
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
{