aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2020-08-14 19:29:14 -0700
committerPaul Eggert2020-08-14 19:29:46 -0700
commitf712cdbe9e9bdca3d4c7c27e9ac59686ab4c7620 (patch)
tree64df9bac5e7ad7e899893d486de7212c8ff18653 /src
parente365b9ab7b989c0587c0f2c0f05d35b4d67920dd (diff)
downloademacs-f712cdbe9e9bdca3d4c7c27e9ac59686ab4c7620.tar.gz
emacs-f712cdbe9e9bdca3d4c7c27e9ac59686ab4c7620.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/lisp.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 2962babb4fe..eaf1c6ce6df 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1809,7 +1809,8 @@ bool_vector_uchar_data (Lisp_Object a)
1809INLINE bool 1809INLINE bool
1810bool_vector_bitref (Lisp_Object a, EMACS_INT i) 1810bool_vector_bitref (Lisp_Object a, EMACS_INT i)
1811{ 1811{
1812 eassume (0 <= i && i < bool_vector_size (a)); 1812 eassume (0 <= i);
1813 eassert (i < bool_vector_size (a));
1813 return !! (bool_vector_uchar_data (a)[i / BOOL_VECTOR_BITS_PER_CHAR] 1814 return !! (bool_vector_uchar_data (a)[i / BOOL_VECTOR_BITS_PER_CHAR]
1814 & (1 << (i % BOOL_VECTOR_BITS_PER_CHAR))); 1815 & (1 << (i % BOOL_VECTOR_BITS_PER_CHAR)));
1815} 1816}
@@ -1825,11 +1826,11 @@ bool_vector_ref (Lisp_Object a, EMACS_INT i)
1825INLINE void 1826INLINE void
1826bool_vector_set (Lisp_Object a, EMACS_INT i, bool b) 1827bool_vector_set (Lisp_Object a, EMACS_INT i, bool b)
1827{ 1828{
1828 unsigned char *addr; 1829 eassume (0 <= i);
1829 1830 eassert (i < bool_vector_size (a));
1830 eassume (0 <= i && i < bool_vector_size (a));
1831 addr = &bool_vector_uchar_data (a)[i / BOOL_VECTOR_BITS_PER_CHAR];
1832 1831
1832 unsigned char *addr
1833 = &bool_vector_uchar_data (a)[i / BOOL_VECTOR_BITS_PER_CHAR];
1833 if (b) 1834 if (b)
1834 *addr |= 1 << (i % BOOL_VECTOR_BITS_PER_CHAR); 1835 *addr |= 1 << (i % BOOL_VECTOR_BITS_PER_CHAR);
1835 else 1836 else