summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/comp-cstr.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp/comp-cstr.el')
-rw-r--r--lisp/emacs-lisp/comp-cstr.el9
1 files changed, 6 insertions, 3 deletions
diff --git a/lisp/emacs-lisp/comp-cstr.el b/lisp/emacs-lisp/comp-cstr.el
index 996502b2869..6a8ec5213d5 100644
--- a/lisp/emacs-lisp/comp-cstr.el
+++ b/lisp/emacs-lisp/comp-cstr.el
@@ -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)