diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2019-04-01 11:54:23 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2019-04-01 12:02:37 -0700 |
commit | 9287813da1ae9076f29be111674d1795bee66447 (patch) | |
tree | d48781deb3ccc24f40de2944efdccc6a84280fd5 /lisp/emacs-lisp/benchmark.el | |
parent | 197fbfc71f49b307baa3831a30732c3a0c4c7420 (diff) | |
download | emacs-9287813da1ae9076f29be111674d1795bee66447.tar.gz emacs-9287813da1ae9076f29be111674d1795bee66447.tar.bz2 emacs-9287813da1ae9076f29be111674d1795bee66447.zip |
Fix union Lisp_Fwd * alignment bug
It's not portable to cast (e.g.) struct Lisp_Objfwd * to union
Lisp_Fwd * and then back again, because the compiler can then assume
that the pointer is aligned for union Lisp_Fwd * when accessing
the struct Lisp_Objfwd * components, and this assumption might
be incorrect becase we don't force that alignment.
* src/lisp.h (lispfwd): New type, replacing ...
(union Lisp_Fwd): ... this type, which was removed.
All uses changed.
(SET_SYMBOL_FWD): 2nd arg is now void *, not lispfwd.
All uses changed (casts no longer needed; they were
not portable anyway).
Diffstat (limited to 'lisp/emacs-lisp/benchmark.el')
0 files changed, 0 insertions, 0 deletions