Mercurial > emacs
changeset 85764:e12efff1fa77
Comment the ENABLE_CHECKING version of the CHECK macro.
author | Ken Raeburn <raeburn@raeburn.org> |
---|---|
date | Mon, 29 Oct 2007 18:15:02 +0000 |
parents | 3b291390be13 |
children | f1a78e8d37f0 |
files | src/lisp.h |
diffstat | 1 files changed, 14 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lisp.h Mon Oct 29 16:45:23 2007 +0000 +++ b/src/lisp.h Mon Oct 29 18:15:02 2007 +0000 @@ -84,6 +84,20 @@ #ifdef ENABLE_CHECKING +/* The suppress_checking variable is initialized to 0 in alloc.c. Set + it to 1 using a debugger to temporarily disable aborting on + detected internal inconsistencies or error conditions. + + Testing suppress_checking after the supplied condition ensures that + the side effects produced by CHECK will be consistent, independent + of whether ENABLE_CHECKING is defined, or whether the checks are + suppressed at run time. + + In some cases, a good compiler may be able to optimize away the + CHECK macro altogether, e.g., if XSTRING (x) uses CHECK to test + STRINGP (x), but a particular use of XSTRING is invoked only after + testing that STRINGP (x) is true, making the test redundant. */ + #define CHECK(check,msg) (((check) || suppress_checking \ ? (void) 0 \ : die ((msg), __FILE__, __LINE__)), \