]> git.eshelyaron.com Git - emacs.git/commitdiff
fix ref ssa propagation
authorAndrea Corallo <akrl@sdf.org>
Thu, 7 Nov 2019 20:40:51 +0000 (21:40 +0100)
committerAndrea Corallo <akrl@sdf.org>
Wed, 1 Jan 2020 10:38:01 +0000 (11:38 +0100)
lisp/emacs-lisp/comp.el

index b5e9dfb3841664bd408f6e10f994b068e2f160c3..2afbae56261691d973f75df93166a2f125bde825 100644 (file)
@@ -1489,7 +1489,9 @@ This can run just once."
      (when (cl-reduce #'eq (mapcar #'comp-mvar-type rest))
        (setf (comp-mvar-type lval) (comp-mvar-type (car rest))))
      ;; Reference propagation.
-     (setf (comp-mvar-ref lval) (cl-every #'comp-mvar-ref rest)))))
+     (let ((operands (cons lval rest)))
+       (when (cl-some #'comp-mvar-ref operands)
+         (mapc (lambda (x) (setf (comp-mvar-ref x) t)) rest))))))
 
 (defun comp-propagate* ()
   "Propagate for set and phi operands."