From 37aa2f85254069b9344f620ab5cd306e4aa33271 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 20 Apr 2011 01:30:52 -0700 Subject: [PATCH] * intervals.c (offset_intervals): Tell GCC not to worry about length overflow when negating a negative length. --- src/ChangeLog | 2 ++ src/intervals.c | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) 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 -- 2.39.2