projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.24.48: Do explicit sign-extension of small signed alien return values
[sbcl.git]
/
src
/
compiler
/
proclaim.lisp
diff --git
a/src/compiler/proclaim.lisp
b/src/compiler/proclaim.lisp
index
c215916
..
7ebf666
100644
(file)
--- a/
src/compiler/proclaim.lisp
+++ b/
src/compiler/proclaim.lisp
@@
-45,11
+45,13
@@
(destructuring-bind (quality raw-value) q-and-v-or-just-q
(values quality raw-value)))
(cond ((not (policy-quality-name-p quality))
(destructuring-bind (quality raw-value) q-and-v-or-just-q
(values quality raw-value)))
(cond ((not (policy-quality-name-p quality))
- (compiler-warn "ignoring unknown optimization quality ~
- ~S in ~S"
- quality spec))
+ (let ((deprecation-warning (policy-quality-deprecation-warning quality spec)))
+ (if deprecation-warning
+ (compiler-warn deprecation-warning)
+ (compiler-warn "~@<Ignoring unknown optimization quality ~S in:~_ ~S~:>"
+ quality spec))))
((not (typep raw-value 'policy-quality))
((not (typep raw-value 'policy-quality))
- (compiler-warn "ignoring bad optimization value ~S in ~S"
+ (compiler-warn "~@<Ignoring bad optimization value ~S in:~_ ~S~:>"
raw-value spec))
(t
;; we can't do this yet, because CLOS macros expand
raw-value spec))
(t
;; we can't do this yet, because CLOS macros expand
@@
-65,7
+67,7
@@
(unless (assq (car old-entry) result)
(push old-entry result)))
;; Voila.
(unless (assq (car old-entry) result)
(push old-entry result)))
;; Voila.
- result))
+ (sort-policy result)))
(declaim (ftype (function (list list) list)
process-handle-conditions-decl))
(declaim (ftype (function (list list) list)
process-handle-conditions-decl))
@@
-252,7
+254,8
@@
(process-package-lock-decl form *disabled-package-locks*)))
((inline notinline maybe-inline)
(dolist (name args)
(process-package-lock-decl form *disabled-package-locks*)))
((inline notinline maybe-inline)
(dolist (name args)
- (proclaim-as-fun-name name) ; since implicitly it is a function
+ ; since implicitly it is a function, also scrubs *FREE-FUNS*
+ (proclaim-as-fun-name name)
(setf (info :function :inlinep name)
(ecase kind
(inline :inline)
(setf (info :function :inlinep name)
(ecase kind
(inline :inline)