• Paul Eggert's avatar
    Fix constant folding of overflows · 5b0fed95
    Paul Eggert authored
    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.
    5b0fed95
byte-opt.el 83.2 KB