UPGRADED-ARRAY-ELEMENT-TYPE: more thoroughly signal errors on unknown types.
[sbcl.git] / src / compiler / entry.lisp
index 6863e05..d2ace4c 100644 (file)
     (setf (entry-info-offset info) (gen-label))
     (setf (entry-info-name info)
           (leaf-debug-name internal-fun))
-    (setf (entry-info-xref info)
-          (pack-xref-data (functional-xref internal-fun)))
+    (let ((doc (functional-documentation internal-fun))
+          (xrefs (pack-xref-data (functional-xref internal-fun))))
+      (setf (entry-info-info info) (if (and doc xrefs)
+                                       (cons doc xrefs)
+                                       (or doc xrefs))))
     (when (policy bind (>= debug 1))
       (let ((args (functional-arg-documentation internal-fun)))
         (aver (not (eq args :unspecified)))
-        (setf (entry-info-arguments info) args))
+        ;; When the component is dumped, the arglists of the entry
+        ;; points will be dumped.  If they contain values that need
+        ;; make-load-form processing then we need to do it now (bug
+        ;; 310132).
+        (setf (entry-info-arguments info)
+              (constant-value (find-constant args))))
       (setf (entry-info-type info) (type-specifier (leaf-type internal-fun)))))
   (values))