diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2018-03-26 17:03:54 -0700 |
---|---|---|
committer | Andrew G Cohen <cohen@andy.bu.edu> | 2018-12-11 14:18:31 +0800 |
commit | 5b0fed956e755eaf0b0dce148b3de39a390d1195 (patch) | |
tree | dacbc54147ed33613ccc5f71efc8215db884c04c /lisp/emacs-lisp/seq.el | |
parent | 5a330784781cf184033dd57f0c386b6a34e06674 (diff) | |
download | emacs-feature/gnus-select.tar.gz |
Fix constant folding of overflowsfeature/gnus-select
This suppresses some byte-code optimizations that were invalid in
the presence of integer overflows, because they meant that .elc
files assumed the runtime behavior of the compiling platform, as
opposed to the runtime platform. Problem reported by Pip Cet in:
https://lists.gnu.org/r/emacs-devel/2018-03/msg00753.html
* lisp/emacs-lisp/byte-opt.el (byte-opt--portable-max)
(byte-opt--portable-min): New constants.
(byte-opt--portable-numberp, byte-opt--arith-reduce)
(byte-optimize-1+, byte-optimize-1-): New functions.
(byte-optimize-plus, byte-optimize-minus, byte-optimize-multiply)
(byte-optimize-divide): Avoid invalid optimizations.
(1+, 1-): Use new optimizers.
(byte-optimize-or, byte-optimize-cond): Simplify by using
remq instead of delq and copy-sequence.
Diffstat (limited to 'lisp/emacs-lisp/seq.el')
0 files changed, 0 insertions, 0 deletions