From 1c4265527e44bf7652bbb2c26f06aae40124562f Mon Sep 17 00:00:00 2001 From: Douglas Katzman Date: Fri, 25 Sep 2020 01:13:42 -0400 Subject: [PATCH] Fix ICF crash --- src/code/icf.lisp | 1 + tests/icf-smoketest.impure-cload.lisp | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 tests/icf-smoketest.impure-cload.lisp diff --git a/src/code/icf.lisp b/src/code/icf.lisp index bab37f521..627f4ecc4 100644 --- a/src/code/icf.lisp +++ b/src/code/icf.lisp @@ -385,6 +385,7 @@ (name (and entry (sb-kernel:%fun-name entry)))) (and (symbolp name) + (symbol-package name) (eq (nth-value 1 (find-symbol (symbol-name name) (symbol-package name))) :external)))) diff --git a/tests/icf-smoketest.impure-cload.lisp b/tests/icf-smoketest.impure-cload.lisp new file mode 100644 index 000000000..ac00a394d --- /dev/null +++ b/tests/icf-smoketest.impure-cload.lisp @@ -0,0 +1,7 @@ +(eval '(defun hhh () 92)) +(defvar f #'hhh) +(unintern 'hhh) +(eval '(defun hhh () 92)) +;;; Ensure no crash on (FIND-PACKAGE (SYMBOL-PACKAGE NIL)) if two functions +;;; are identical and one is named by an uninterned symbol. +(fold-identical-code :aggressive t)