summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/comp.el
diff options
context:
space:
mode:
authorAndrea Corallo <akrl@sdf.org>2020-11-05 22:23:48 +0100
committerAndrea Corallo <akrl@sdf.org>2020-11-05 22:34:12 +0100
commitc6abe97f941a5021d416e01fb0f61a675c5f6b29 (patch)
treeba0c81f812c2353cb68bca974088a741ffa69cad /lisp/emacs-lisp/comp.el
parent3e3843512bfae0b7a532f633e45d4c140807ec9b (diff)
downloademacs-c6abe97f941a5021d416e01fb0f61a675c5f6b29.tar.gz
emacs-c6abe97f941a5021d416e01fb0f61a675c5f6b29.tar.bz2
emacs-c6abe97f941a5021d416e01fb0f61a675c5f6b29.zip
* A native compiler forward propagation fix
* lisp/emacs-lisp/comp.el (comp-fwprop-insn): Fix `comp-mvar' `const-vld' slot left unset while propagating in phis.
Diffstat (limited to 'lisp/emacs-lisp/comp.el')
-rw-r--r--lisp/emacs-lisp/comp.el3
1 files changed, 2 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index b35fe9bfcbb..51fed2ffd3b 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -2249,7 +2249,8 @@ Forward propagate immediate involed in assignments."
(consts (mapcar #'comp-mvar-constant rest))
(x (car consts))
(equals (cl-every (lambda (y) (equal x y)) consts)))
- (setf (comp-mvar-constant lval) x))
+ (setf (comp-mvar-const-vld lval) t
+ (comp-mvar-constant lval) x))
;; Forward type propagation.
;; FIXME: checking for type equality is not sufficient cause does not
;; account type hierarchy!