;;; In sbcl-0.6.10, Douglas Brebner reported that (SETF EXTERN-ALIEN)
;;; was messed up so badly that trying to execute expressions like
;;; this signalled an error.
-(setf (sb-alien:extern-alien "current_control_stack_pointer" sb-alien:unsigned)
- (sb-alien:extern-alien "current_control_stack_pointer" sb-alien:unsigned))
+(setf (sb-alien:extern-alien "thread_control_stack_size" sb-alien:unsigned)
+ (sb-alien:extern-alien "thread_control_stack_size" sb-alien:unsigned))
;;; bug 133, fixed in 0.7.0.5: Somewhere in 0.pre7.*, C void returns
;;; were broken ("unable to use values types here") when
(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))))
+
;;; success