1 ;;;; This software is part of the SBCL system. See the README file for
4 ;;;; This software is derived from the CMU CL system, which was
5 ;;;; written at Carnegie Mellon University and released into the
6 ;;;; public domain. The software is in the public domain and is
7 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
8 ;;;; files for more information.
10 ;;; This file deliberately lacks an IN-PACKAGE.
11 ;;; so that the functions go in a package determined by the scaffolding.
13 ;; These have to be stated three times:
14 ;; - once for the host if self-hosted,
15 ;; - once for the cross-compiler (but substituting SB!INT for SB-INT)
16 ;; - once again for warm load.
18 ;; This avoids muffling "could not optimize away %SAP-ALIEN"
19 ;; and "SAP to pointer conversion" in case we care.
20 (defun unable-to-optimize-note-p (condition)
22 #-sb-xc
'sb-int
:simple-compiler-note
; make-host-1 and warm
23 #+sb-xc
'sb
!int
:simple-compiler-note
) ; make-host-2
24 (or (search "unable to" (simple-condition-format-control condition
))
25 (let ((args (simple-condition-format-arguments condition
)))
26 (and (typep (car args
) '(cons string
))
27 (search "forced to do" (caar args
)))))))
29 (defun optional+key-style-warning-p
(condition)
30 (and (typep condition
'(and simple-condition style-warning
))
31 (search "&OPTIONAL and &KEY found"
32 (simple-condition-format-control condition
))))