0.8.16.22:
[sbcl.git] / src / compiler / x86 / vm.lisp
index 2839abb..48fc7ad 100644 (file)
 ;;; The loader uses this to convert alien names to the form they need in
 ;;; the symbol table (for example, prepending an underscore).
 (defun extern-alien-name (name)
-  (declare (type simple-base-string name))
+  (declare (type string name))
   ;; ELF ports currently don't need any prefix
-  name)
+  (typecase name
+    (simple-base-string name)
+    (base-string (coerce name 'simple-base-string))
+    (t (handler-case (coerce name 'simple-base-string)
+        (type-error () (error "invalid external alien name: ~S" name))))))