From: Paul Eggert Date: Wed, 20 Apr 2011 08:30:52 +0000 (-0700) Subject: * intervals.c (offset_intervals): Tell GCC not to worry about length overflow X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~236 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=37aa2f85254069b9344f620ab5cd306e4aa33271;p=emacs.git * intervals.c (offset_intervals): Tell GCC not to worry about length overflow when negating a negative length. --- diff --git a/src/ChangeLog b/src/ChangeLog index 9a8177bf43f..d01d8fbd727 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -6,6 +6,8 @@ (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed. * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT. All uses changed. + (offset_intervals): Tell GCC not to worry about length overflow + when negating a negative length. * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static. (overrun_check_free): Likewise. diff --git a/src/intervals.c b/src/intervals.c index 8f3840976d0..e72bc146d16 100644 --- a/src/intervals.c +++ b/src/intervals.c @@ -39,6 +39,7 @@ along with GNU Emacs. If not, see . */ #include #include +#include #include "lisp.h" #include "intervals.h" #include "buffer.h" @@ -1435,7 +1436,10 @@ offset_intervals (struct buffer *buffer, EMACS_INT start, EMACS_INT length) if (length > 0) adjust_intervals_for_insertion (BUF_INTERVALS (buffer), start, length); else - adjust_intervals_for_deletion (buffer, start, -length); + { + IF_LINT (if (length < - TYPE_MAXIMUM (EMACS_INT)) abort ();) + adjust_intervals_for_deletion (buffer, start, -length); + } } /* Merge interval I with its lexicographic successor. The resulting