#235 closed defect (fixed)
> < >= <= = 2-arg compiler rewrites are broken
| Reported by: | Jim Ursetto | Owned by: | felix winkelmann |
|---|---|---|---|
| Priority: | critical | Milestone: | |
| Component: | core libraries | Version: | 4.5.0 |
| Keywords: | Cc: | ||
| Estimated difficulty: |
Description
The implementation of C_i_greaterp does not throw an error when the first argument is not a number.
See example at http://paste.lisp.org/display/99206
I believe this is because it does not check the argument type of x, only y. Instead if x is not a fixnum or flonum, C_i_greaterp just returns #f.
In other words it is missing:
else barf(C_BAD_ARGUMENT_TYPE_ERROR, ">", x);
I also believe C_i_nequalp, C_i_greaterp, C_i_lessp, C_i_greater_or_equalp, C_i_less_or_equalp are all affected.
Change History (4)
comment:1 Changed 15 years ago by
| Status: | new → accepted |
|---|
comment:2 Changed 15 years ago by
| Component: | compiler → core libraries |
|---|
comment:3 Changed 15 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | accepted → closed |
Note: See
TracTickets for help on using
tickets.

Fixed in commit 90ff06e (master).