Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Commit [20102d] Maximize Restore History

Fix copy-more-arg on x86 and x86-64

Parsing of non-fixed (&optional, &key and &rest) arguments used to
fail when there were more fixed arguments than slots in the stack
frame. Fix this on x86oids by copying non-fixed arguments in the
correct direction, depending on whether there are more fixed args
or stack frame slots.

This bug is more visible on x86oids since 3b98d3 (Smaller stack
frames on x86oids), but may still plague other platforms. These
platforms still have larger initial stack frame size (8 slots), so
the issue remains as hard to trigger as it's been for more than a
decade.

Reported by Jan Moringen, and reduced by Stas Boukarev.

Also add a test, marked as failing on !x86oids.

Paul Khuong Paul Khuong 2013-09-21

changed src/compiler/x86-64/call.lisp
changed src/compiler/x86/call.lisp
changed tests/compiler.pure.lisp
changed NEWS
src/compiler/x86-64/call.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86/call.lisp Diff Switch to side-by-side view
Loading...
tests/compiler.pure.lisp Diff Switch to side-by-side view
Loading...
NEWS Diff Switch to side-by-side view
Loading...