instance-set-multiple doesn't handle float type in arm64 properly
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Following code fails to compile:
```lisp
(defstruct input-status status time)
(defun handle-input ()
(let ((status (make-input-
(setf (input-
```
I get the following message:
0.0 fell through ETYPECASE expression.
Wanted one of (INTEGER CHARACTER SYMBOL).
I got around this error while trying to run lispbuilder-sdl. This is the minimum code that triggers the compiler bug.
What seems to me is that a branch for float type is missing in vop definition of instance-
Backtrace:
0: ((SB-C::VOP SB-VM::
1: (SB-C::
2: (SB-C::
3: (SB-C::
4: (SB-C::%COMPILE (SB-INT:
5: ((LAMBDA NIL :IN SB-C:COMPILE-
6: ((FLET SB-C::WITH-IT :IN SB-C::%
7: (SB-C:COMPILE-
2. SBCL VERSIONS: 2.4.1 and 2.4.2
I ran this code in MacOS M1 Pro Sonoma 14.1 (arm64) with sbcl-2.4.1 installed from homebrew and sbcl-2.4.2 that I built from source.
3. uname -a
Darwin bpanthi977-
4. *FEATURES*
(:QUICKLISP :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-MACOSX :OS-UNIX
:NON-BASE-
:COMMON-LISP :DARWIN :IEEE-FLOATING-
:PACKAGE-
:SB-THREAD :SB-UNICODE :SBCL :UNIX)
Changed in sbcl: | |
status: | New → Fix Committed |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |