Fix two compiler ICEs dealing with nan and infinity

* lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): Don't crash when
	truncate fails.
	* test/src/comp-test-funcs.el (comp-test-=-nan): Add two functions
	to be compiled.
This commit is contained in:
Andrea Corallo 2021-03-02 17:23:12 +01:00
parent 30810905de
commit 0c5ba41b72
2 changed files with 14 additions and 3 deletions

View file

@ -871,9 +871,12 @@ Non memoized version of `comp-cstr-intersection-no-mem'."
;; precisely as an integer add the integer as well.
(cl-loop
for v in (valset cstr)
when (and (floatp v)
(= v (truncate v)))
do (push (cons (truncate v) (truncate v)) (range cstr)))
do
(when-let* ((ok (floatp v))
(truncated (ignore-error 'overflow-error
(truncate v)))
(ok (= v truncated)))
(push (cons truncated truncated) (range cstr))))
(cl-loop
with vals-to-add
for (l . h) in (range cstr)