diff options
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lisp.h b/src/lisp.h index 62c629bd4a8..f4b93ff9dce 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -84,6 +84,20 @@ extern void die P_((const char *, const char *, int)) NO_RETURN; | |||
| 84 | 84 | ||
| 85 | #ifdef ENABLE_CHECKING | 85 | #ifdef ENABLE_CHECKING |
| 86 | 86 | ||
| 87 | /* The suppress_checking variable is initialized to 0 in alloc.c. Set | ||
| 88 | it to 1 using a debugger to temporarily disable aborting on | ||
| 89 | detected internal inconsistencies or error conditions. | ||
| 90 | |||
| 91 | Testing suppress_checking after the supplied condition ensures that | ||
| 92 | the side effects produced by CHECK will be consistent, independent | ||
| 93 | of whether ENABLE_CHECKING is defined, or whether the checks are | ||
| 94 | suppressed at run time. | ||
| 95 | |||
| 96 | In some cases, a good compiler may be able to optimize away the | ||
| 97 | CHECK macro altogether, e.g., if XSTRING (x) uses CHECK to test | ||
| 98 | STRINGP (x), but a particular use of XSTRING is invoked only after | ||
| 99 | testing that STRINGP (x) is true, making the test redundant. */ | ||
| 100 | |||
| 87 | #define CHECK(check,msg) (((check) || suppress_checking \ | 101 | #define CHECK(check,msg) (((check) || suppress_checking \ |
| 88 | ? (void) 0 \ | 102 | ? (void) 0 \ |
| 89 | : die ((msg), __FILE__, __LINE__)), \ | 103 | : die ((msg), __FILE__, __LINE__)), \ |