[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/native-comp 5a228fe 1/2: Prevent false warning emission
From: |
Andrea Corallo |
Subject: |
feature/native-comp 5a228fe 1/2: Prevent false warning emission |
Date: |
Fri, 3 Jan 2020 11:56:03 -0500 (EST) |
branch: feature/native-comp
commit 5a228fefb6f1d1932f452693ded660cd903f457d
Author: Andrea Corallo <address@hidden>
Commit: Andrea Corallo <address@hidden>
Prevent false warning emission
---
lisp/emacs-lisp/comp.el | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index de3b28e..77d47bd 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -1551,15 +1551,15 @@ This can run just once."
"Given INSN when F is pure if all ARGS are known remove the function call."
(when (and (get f 'pure) ; Can we just optimize pure here? See byte-opt.el
(cl-every #'comp-mvar-const-vld args))
- (condition-case err
- (let ((val (apply f (mapcar #'comp-mvar-constant args))))
- ;; See `comp-emit-set-const'.
- (setf (car insn) 'setimm
- (cddr insn) (list (comp-add-const-to-relocs val) val)))
- ;; FIXME Should we crash? At least we should complain once.
- (t (message "Native compiler trying to move run-time error into \
-compile-time? %S calling %S inside function %S." err f
-(comp-func-name comp-func))))))
+ (ignore-errors
+ ;; No point to complain here because we should do basic block
+ ;; pruning in order to be sure that this is not dead-code. This
+ ;; is now left to gcc, to be implemented only if we want a
+ ;; reliable diagnostic here.
+ (let ((val (apply f (mapcar #'comp-mvar-constant args))))
+ ;; See `comp-emit-set-const'.
+ (setf (car insn) 'setimm
+ (cddr insn) (list (comp-add-const-to-relocs val) val))))))
(defun comp-propagate-insn (insn)
"Propagate within INSN."