diff options
| author | Philipp Stephani | 2020-08-01 21:34:46 +0200 |
|---|---|---|
| committer | Philipp Stephani | 2020-08-01 21:34:46 +0200 |
| commit | 6ec71e829a272e562c541ef5c93213d2fac3d3d7 (patch) | |
| tree | 4a0ffc31e40e5c222b566c84955fca5cda14da51 /src/alloc.c | |
| parent | fce47c93252fe0be14e8c169f6bab8b0fd512cab (diff) | |
| download | emacs-6ec71e829a272e562c541ef5c93213d2fac3d3d7.tar.gz emacs-6ec71e829a272e562c541ef5c93213d2fac3d3d7.zip | |
* src/alloc.c (mark_maybe_object): Make overflow check conditional.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/alloc.c b/src/alloc.c index e556fc86a3b..e139d8cf262 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -4643,7 +4643,13 @@ mark_maybe_object (Lisp_Object obj) | |||
| 4643 | 4643 | ||
| 4644 | bool overflow | 4644 | bool overflow |
| 4645 | = INT_SUBTRACT_WRAPV (offset, LISP_WORD_TAG (type_tag), &offset); | 4645 | = INT_SUBTRACT_WRAPV (offset, LISP_WORD_TAG (type_tag), &offset); |
| 4646 | #if !defined WIDE_EMACS_INT || USE_LSB_TAG | ||
| 4647 | /* If we don't use wide integers, then `intptr_t' should always be | ||
| 4648 | large enough to not overflow. Furthermore, when using the least | ||
| 4649 | significant bits as tag bits, the tag is small enough to not | ||
| 4650 | overflow either. */ | ||
| 4646 | eassert (!overflow); | 4651 | eassert (!overflow); |
| 4652 | #endif | ||
| 4647 | void *po = (char *) ((intptr_t) (char *) XLP (obj) + offset); | 4653 | void *po = (char *) ((intptr_t) (char *) XLP (obj) + offset); |
| 4648 | 4654 | ||
| 4649 | /* If the pointer is in the dump image and the dump has a record | 4655 | /* If the pointer is in the dump image and the dump has a record |