diff options
| author | Paul Eggert | 2019-04-21 20:34:03 -0700 |
|---|---|---|
| committer | Paul Eggert | 2019-04-21 21:16:26 -0700 |
| commit | f67bc3f12b8ebe4ff0d133063e3c41ab772dbd45 (patch) | |
| tree | f1f3482421b2358e0d95d1be4a62654c70a49a61 /src/alloc.c | |
| parent | 3a618e5f89c86bc96925b06647fb33568c8fa2c9 (diff) | |
| download | emacs-f67bc3f12b8ebe4ff0d133063e3c41ab772dbd45.tar.gz emacs-f67bc3f12b8ebe4ff0d133063e3c41ab772dbd45.zip | |
Port to recent gcc -fsanitize=undefined
* src/alloc.c (XPNTR): Add ATTRIBUTE_NO_SANITIZE_UNDEFINED and
remove ATTRIBUTE_UNUSED. Do not define as a macro, so that
ATTRIBUTE_NO_SANITIZE_UNDEFINED works.
* src/lisp.h (lisp_h_XSYMBOL): Remove. All uses removed.
With recent GCC the macro does not work with -fsanitize=undefined,
and the macro can be omitted as its only function is to optimize -O0.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/alloc.c b/src/alloc.c index b5b6dc2f05f..a9cdd77ef2e 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -558,16 +558,12 @@ PNTR_ADD (char *p, EMACS_UINT i) | |||
| 558 | - ((EMACS_UINT) Lisp_Symbol << (USE_LSB_TAG ? 0 : VALBITS)))) \ | 558 | - ((EMACS_UINT) Lisp_Symbol << (USE_LSB_TAG ? 0 : VALBITS)))) \ |
| 559 | : (char *) XLP (o) - (XLI (o) & ~VALMASK))) | 559 | : (char *) XLP (o) - (XLI (o) & ~VALMASK))) |
| 560 | 560 | ||
| 561 | static ATTRIBUTE_UNUSED void * | 561 | static ATTRIBUTE_NO_SANITIZE_UNDEFINED void * |
| 562 | XPNTR (Lisp_Object a) | 562 | XPNTR (Lisp_Object a) |
| 563 | { | 563 | { |
| 564 | return macro_XPNTR (a); | 564 | return macro_XPNTR (a); |
| 565 | } | 565 | } |
| 566 | 566 | ||
| 567 | #if DEFINE_KEY_OPS_AS_MACROS | ||
| 568 | # define XPNTR(a) macro_XPNTR (a) | ||
| 569 | #endif | ||
| 570 | |||
| 571 | static void | 567 | static void |
| 572 | XFLOAT_INIT (Lisp_Object f, double n) | 568 | XFLOAT_INIT (Lisp_Object f, double n) |
| 573 | { | 569 | { |