Commit 0d5d3029 authored by Paul Eggert's avatar Paul Eggert
Browse files

* lisp.h (eassert): Don't use 'assume'.

Sometimes 'assume' wins in performance, and sometimes it loses,
so it shouldn't be used all the time.  Perhaps we need two
flavors of 'eassert', one for where 'assume' is far more likely
to help or to hurt; but that can be done later.
Problem reported by Dmitry Andipov in
<http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00276.html>.
Also, don't include <verify.h>; no longer needed.
parent fa022909
2013-10-09 Paul Eggert <eggert@cs.ucla.edu>
* lisp.h (eassert): Don't use 'assume'.
Sometimes 'assume' wins in performance, and sometimes it loses,
so it shouldn't be used all the time. Perhaps we need two
flavors of 'eassert', one for where 'assume' is far more likely
to help or to hurt; but that can be done later.
Problem reported by Dmitry Andipov in
<http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00276.html>.
Also, don't include <verify.h>; no longer needed.
2013-10-09 Glenn Morris <rgm@gnu.org>
* eval.c (Fcond): Doc tweak.
......
......@@ -31,7 +31,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <limits.h>
#include <intprops.h>
#include <verify.h>
INLINE_HEADER_BEGIN
......@@ -115,11 +114,9 @@ typedef EMACS_UINT uprintmax_t;
/* Extra internal type checking? */
/* Define an Emacs version of 'assert (COND)'. COND should be free of
side effects; it may be evaluated zero or more times. If COND is false,
Emacs reliably crashes if ENABLE_CHECKING is defined and behavior
is undefined if not. The compiler may assume COND while optimizing. */
side effects; it may be evaluated zero or more times. */
#ifndef ENABLE_CHECKING
# define eassert(cond) assume (cond)
# define eassert(cond) ((void) (0 && (cond))) /* Check that COND compiles. */
#else /* ENABLE_CHECKING */
extern _Noreturn void die (const char *, const char *, int);
......@@ -136,7 +133,7 @@ extern bool suppress_checking EXTERNALLY_VISIBLE;
# define eassert(cond) \
(suppress_checking || (cond) \
? assume (cond) \
? (void) 0 \
: die (# cond, __FILE__, __LINE__))
#endif /* ENABLE_CHECKING */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment