]> git.eshelyaron.com Git - emacs.git/commitdiff
Prevent false warning emission
authorAndrea Corallo <akrl@sdf.org>
Wed, 1 Jan 2020 21:02:49 +0000 (22:02 +0100)
committerAndrea Corallo <akrl@sdf.org>
Fri, 3 Jan 2020 16:47:09 +0000 (17:47 +0100)
lisp/emacs-lisp/comp.el

index de3b28e438cc05c4317b17953629b15ef4dcb799..77d47bde8a8f6ebd0805583a1bb6b6c51c6a939b 100644 (file)
@@ -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."