Make native compiler tollerant to redefined primitives (bug#44221).

* lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Rework based
	on the fact that the subr can now be redefined.
	* test/src/comp-tests.el (primitive-redefine-compile-44221):
	New testcase.
This commit is contained in:
Andrea Corallo 2020-10-26 16:31:13 +00:00
parent 5edc7aa019
commit fd9e9308d2
2 changed files with 10 additions and 3 deletions

View file

@ -1153,9 +1153,7 @@ Return value is the fall through block name."
SP-DELTA is the stack adjustment."
(let ((subr (symbol-function subr-name))
(nargs (1+ (- sp-delta))))
(unless (subrp subr)
(signal 'native-ice (list "not a subr" subr)))
(let* ((arity (subr-arity subr))
(let* ((arity (func-arity subr))
(minarg (car arity))
(maxarg (cdr arity)))
(when (eq maxarg 'unevalled)