aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog11
-rw-r--r--src/lisp.h9
2 files changed, 14 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 3ae42ea87c8..7800959b091 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,14 @@
12013-10-09 Paul Eggert <eggert@cs.ucla.edu>
2
3 * lisp.h (eassert): Don't use 'assume'.
4 Sometimes 'assume' wins in performance, and sometimes it loses,
5 so it shouldn't be used all the time. Perhaps we need two
6 flavors of 'eassert', one for where 'assume' is far more likely
7 to help or to hurt; but that can be done later.
8 Problem reported by Dmitry Andipov in
9 <http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00276.html>.
10 Also, don't include <verify.h>; no longer needed.
11
12013-10-09 Glenn Morris <rgm@gnu.org> 122013-10-09 Glenn Morris <rgm@gnu.org>
2 13
3 * eval.c (Fcond): Doc tweak. 14 * eval.c (Fcond): Doc tweak.
diff --git a/src/lisp.h b/src/lisp.h
index 3773398d773..6638cc66e9f 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -31,7 +31,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
31#include <limits.h> 31#include <limits.h>
32 32
33#include <intprops.h> 33#include <intprops.h>
34#include <verify.h>
35 34
36INLINE_HEADER_BEGIN 35INLINE_HEADER_BEGIN
37 36
@@ -115,11 +114,9 @@ typedef EMACS_UINT uprintmax_t;
115/* Extra internal type checking? */ 114/* Extra internal type checking? */
116 115
117/* Define an Emacs version of 'assert (COND)'. COND should be free of 116/* Define an Emacs version of 'assert (COND)'. COND should be free of
118 side effects; it may be evaluated zero or more times. If COND is false, 117 side effects; it may be evaluated zero or more times. */
119 Emacs reliably crashes if ENABLE_CHECKING is defined and behavior
120 is undefined if not. The compiler may assume COND while optimizing. */
121#ifndef ENABLE_CHECKING 118#ifndef ENABLE_CHECKING
122# define eassert(cond) assume (cond) 119# define eassert(cond) ((void) (0 && (cond))) /* Check that COND compiles. */
123#else /* ENABLE_CHECKING */ 120#else /* ENABLE_CHECKING */
124 121
125extern _Noreturn void die (const char *, const char *, int); 122extern _Noreturn void die (const char *, const char *, int);
@@ -136,7 +133,7 @@ extern bool suppress_checking EXTERNALLY_VISIBLE;
136 133
137# define eassert(cond) \ 134# define eassert(cond) \
138 (suppress_checking || (cond) \ 135 (suppress_checking || (cond) \
139 ? assume (cond) \ 136 ? (void) 0 \
140 : die (# cond, __FILE__, __LINE__)) 137 : die (# cond, __FILE__, __LINE__))
141#endif /* ENABLE_CHECKING */ 138#endif /* ENABLE_CHECKING */
142 139