summaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2008-04-20 21:06:16 +0000
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2008-04-20 21:06:16 +0000
commit883accb67f63aeac025ca3b482f4a5f74115a790 (patch)
treef392bf9a9962fd4049778c221da2165cfc7cf5b9 /libgfortran
parentc808637ebd40215efaffc70b76d51cdda632bf57 (diff)
downloadgcc-883accb67f63aeac025ca3b482f4a5f74115a790.tar.gz
2008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/35991 * intrinsics/cshift0.c (cshift0): Avoid divide by zero. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134491 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog5
-rw-r--r--libgfortran/intrinsics/cshift0.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 922eef795d2..8ef3e0fc55e 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35991
+ * intrinsics/cshift0.c (cshift0): Avoid divide by zero.
+
2008-04-20 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/35960
diff --git a/libgfortran/intrinsics/cshift0.c b/libgfortran/intrinsics/cshift0.c
index 75762a8158f..aa466ff3b6b 100644
--- a/libgfortran/intrinsics/cshift0.c
+++ b/libgfortran/intrinsics/cshift0.c
@@ -202,7 +202,7 @@ cshift0 (gfc_array_char * ret, const gfc_array_char * array,
rptr = ret->data;
sptr = array->data;
- shift = shift % (ssize_t)len;
+ shift = len == 0 ? 0 : shift % (ssize_t)len;
if (shift < 0)
shift += len;