diff --git a/test/src/comp-test-funcs.el b/test/src/comp-test-funcs.el index 1b0f3056b98..bcf9fcb0fd1 100644 --- a/test/src/comp-test-funcs.el +++ b/test/src/comp-test-funcs.el @@ -354,6 +354,22 @@ comp-test-and-3-var 2)) +(defun comp-test-copy-insn-f (insn) + ;; From `comp-copy-insn'. + (if (consp insn) + (let (result) + (while (consp insn) + (let ((newcar (car insn))) + (if (or (consp (car insn)) (comp-mvar-p (car insn))) + (setf newcar (comp-copy-insn (car insn)))) + (push newcar result)) + (setf insn (cdr insn))) + (nconc (nreverse result) + (if (comp-mvar-p insn) (comp-copy-insn insn) insn))) + (if (comp-mvar-p insn) + (copy-comp-mvar insn) + insn))) + ;;;;;;;;;;;;;;;;;;;; ;; Tromey's tests ;; diff --git a/test/src/comp-tests.el b/test/src/comp-tests.el index 61838c670e1..b2f83998838 100644 --- a/test/src/comp-tests.el +++ b/test/src/comp-tests.el @@ -444,6 +444,11 @@ https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-03/msg00914.html." (should (= (comp-test-and-3-f t) 2)) (should (null (comp-test-and-3-f '(1 2))))) +(comp-deftest copy-insn () + (should (equal (comp-test-copy-insn-f '(1 2 3 (4 5 6))) + '(1 2 3 (4 5 6)))) + (should (null (comp-test-copy-insn-f nil)))) + ;;;;;;;;;;;;;;;;;;;;; ;; Tromey's tests. ;;