diff options
| author | Paul Eggert | 2020-08-14 19:29:14 -0700 |
|---|---|---|
| committer | Paul Eggert | 2020-08-14 19:29:46 -0700 |
| commit | f712cdbe9e9bdca3d4c7c27e9ac59686ab4c7620 (patch) | |
| tree | 64df9bac5e7ad7e899893d486de7212c8ff18653 /src | |
| parent | e365b9ab7b989c0587c0f2c0f05d35b4d67920dd (diff) | |
| download | emacs-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.h | 11 |
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) | |||
| 1809 | INLINE bool | 1809 | INLINE bool |
| 1810 | bool_vector_bitref (Lisp_Object a, EMACS_INT i) | 1810 | bool_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) | |||
| 1825 | INLINE void | 1826 | INLINE void |
| 1826 | bool_vector_set (Lisp_Object a, EMACS_INT i, bool b) | 1827 | bool_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 |