1.0.46.43: fix sb-introspect on non-threaded builds
[sbcl.git] / tests / alien.impure.lisp
index 096e82a..d60bd10 100644 (file)
     (verify (signed 16)   #x003f8042 #x-7fbe)
     (verify (signed 16)   #x003f7042 #x7042)))
 
+(with-test (:name :bug-654485)
+  ;; DEBUG 2 used to prevent let-conversion of the open-coded ALIEN-FUNCALL body,
+  ;; which in turn led the dreaded %SAP-ALIEN note.
+  (handler-case
+      (compile nil
+               `(lambda (program argv)
+                  (declare (optimize (debug 2)))
+                  (with-alien ((sys-execv1 (function int c-string (* c-string)) :extern
+                                           "execv"))
+                    (values (alien-funcall sys-execv1 program argv)))))
+    (compiler-note (n)
+      (error n))))
+
+(with-test (:name :bug-721087)
+  (assert (typep nil '(alien c-string)))
+  (assert (not (typep nil '(alien (c-string :not-null t)))))
+  (assert (eq :ok
+              (handler-case
+                  (posix-getenv nil)
+                (type-error (e)
+                  (when (and (null (type-error-datum e))
+                             (equal (type-error-expected-type e)
+                                    '(alien (c-string :not-null t))))
+                    :ok))))))
+
 ;;; success