From: Andrea Corallo <akrl@sdf.org>
Date: Wed, 24 Aug 2022 16:41:19 +0000 (+0200)
Subject: * lisp/emacs-lisp/comp.el (comp-fwprop-call): Extend to understand `record'
X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f4de81af8fc54ef278cdb76fbc5885ed7d05b2d7;p=emacs.git

* lisp/emacs-lisp/comp.el (comp-fwprop-call): Extend to understand `record'
---

diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 2e07b0b0e60..289c5bf2ac4 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -3198,7 +3198,11 @@ Fold the call in case."
       (+ (comp-cstr-add lval args))
       (- (comp-cstr-sub lval args))
       (1+ (comp-cstr-add lval `(,(car args) ,comp-cstr-one)))
-      (1- (comp-cstr-sub lval `(,(car args) ,comp-cstr-one))))))
+      (1- (comp-cstr-sub lval `(,(car args) ,comp-cstr-one)))
+      (record (when (comp-cstr-imm-vld-p (car args))
+                (comp-cstr-shallow-copy lval
+                                        (comp-type-spec-to-cstr
+                                         (comp-cstr-imm (car args)))))))))
 
 (defun comp-fwprop-insn (insn)
   "Propagate within INSN."