From 93aeb781e1da3cab6ae90c90cd3668862155ab85 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Thu, 7 Nov 2019 21:40:51 +0100 Subject: [PATCH] fix ref ssa propagation --- lisp/emacs-lisp/comp.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index b5e9dfb3841..2afbae56261 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -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." -- 2.39.5