Ticket #38 (new defect)
Inlining loses declarations
| Reported by: | heller | Owned by: | somebody |
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | Core | Version: | 20a |
| Keywords: | Cc: |
Description
I'd like to write a function fx+ which is like + but only accepts fixnums as arguments and never conses, i.e. it's considered an error if the sum is not a fixnum. Arguments and return value should be checked. Essentially this
(declaim (inline fx+))
(defun fx+ (x y)
(declare (fixnum x y)
(values fixnum))
(+ x y))
is what I want. If called as (fx+ 1 most-positive-fixnum) the error is detected as it should be. But after inlining
(defun foo (x y) (fx+ x y))
and using it like (foo 1 most-positive-fixnum) it returns -536870912.
Change History
Note: See
TracTickets for help on using
tickets.
