emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master f712cdb: Pacify Apple clang 11 __builtin_assume


From: Paul Eggert
Subject: master f712cdb: Pacify Apple clang 11 __builtin_assume
Date: Fri, 14 Aug 2020 22:29:51 -0400 (EDT)

branch: master
commit f712cdbe9e9bdca3d4c7c27e9ac59686ab4c7620
Author: Paul Eggert <eggert@cs.ucla.edu>
Commit: Paul Eggert <eggert@cs.ucla.edu>

    Pacify Apple clang 11 __builtin_assume
    
    Problem reported by Mattias EngdegÄrd in:
    https://lists.gnu.org/r/emacs-devel/2020-08/msg00300.html
    * src/lisp.h (bool_vector_bitref, bool_vector_set):
    Use eassert instead of eassume for bool_vector_size checks.
---
 src/lisp.h | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/lisp.h b/src/lisp.h
index 2962bab..eaf1c6c 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1809,7 +1809,8 @@ bool_vector_uchar_data (Lisp_Object a)
 INLINE bool
 bool_vector_bitref (Lisp_Object a, EMACS_INT i)
 {
-  eassume (0 <= i && i < bool_vector_size (a));
+  eassume (0 <= i);
+  eassert (i < bool_vector_size (a));
   return !! (bool_vector_uchar_data (a)[i / BOOL_VECTOR_BITS_PER_CHAR]
             & (1 << (i % BOOL_VECTOR_BITS_PER_CHAR)));
 }
@@ -1825,11 +1826,11 @@ bool_vector_ref (Lisp_Object a, EMACS_INT i)
 INLINE void
 bool_vector_set (Lisp_Object a, EMACS_INT i, bool b)
 {
-  unsigned char *addr;
-
-  eassume (0 <= i && i < bool_vector_size (a));
-  addr = &bool_vector_uchar_data (a)[i / BOOL_VECTOR_BITS_PER_CHAR];
+  eassume (0 <= i);
+  eassert (i < bool_vector_size (a));
 
+  unsigned char *addr
+    = &bool_vector_uchar_data (a)[i / BOOL_VECTOR_BITS_PER_CHAR];
   if (b)
     *addr |= 1 << (i % BOOL_VECTOR_BITS_PER_CHAR);
   else



reply via email to

[Prev in Thread] Current Thread [Next in Thread]