(abort-ir1-transform "too many indices for pointer deref: ~W"
(length indices)))
(let ((element-type (alien-pointer-type-to alien-type)))
+ (unless element-type
+ (give-up-ir1-transform "unable to open code deref of wild pointer type"))
(if indices
(let ((bits (alien-type-bits element-type))
(alignment (alien-type-alignment element-type)))
(setf body `(invoke-with-saved-fp-and-pc (lambda () ,body))))
(/noshow "returning from DEFTRANSFORM ALIEN-FUNCALL" (params) body)
`(lambda (function ,@(params))
+ (declare (optimize (let-conversion 3)))
,body)))))))
(defoptimizer (%alien-funcall derive-type) ((function type &rest args))