dynamic-extent &rest called with no args leads to memory fault
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
High
|
Unassigned |
Bug Description
Tested with SBCL-1.1.0, x86_64, with --no-userinit:
This is SBCL 1.1.0, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
* (defun test (&rest args) (let ((var (car args))) (princ var)))
TEST
* (test)
CORRUPTION WARNING in SBCL pid 23136(tid 140737353864960):
Memory fault at 0 (pc=0x1000e2beac, sp=0x7ffff0b575a0)
The integrity of this image is possibly compromised.
Continuing with fingers crossed.
:
*features*:
(:ANSI-CL :COMMON-LISP :SBCL :SB-DOC :SB-TEST :SB-LDB :SB-PACKAGE-LOCKS
:SB-UNICODE :SB-EVAL :SB-SOURCE-
:OS-PROVIDES-POLL :OS-PROVIDES-
:OS-PROVIDES-
:OS-PROVIDES-
:INLINE-CONSTANTS :FLOAT-EQL-VOPS :COMPLEX-FLOAT-VOPS :CYCLE-COUNTER
:ALIEN-CALLBACKS :STACK-
:STACK-
:UNWIND-
:C-STACK-
:SB-FUTEX :LINUX :ELF :UNIX :X86-64 :SB-CORE-
:SB-XREF-
uname -a:
Linux central 3.4.4-gentoo #1 SMP PREEMPT Thu Jun 28 10:23:12 CDT 2012 x86_64 Dual-Core AMD Opteron(tm) Processor 2216 AuthenticAMD GNU/Linux
Changed in sbcl: | |
status: | Triaged → Confirmed |
Changed in sbcl: | |
status: | Confirmed → Triaged |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
Note that this only happens with dynamic-extent args:
(defun test (&rest args) (declare (dynamic-extent args)) (car args))
triggers it, while
(defun test (&rest args) (car args))
does not.