Opened 8 years ago
Closed 8 years ago
#1107 closed defect (fixed)
"Registers clobbered" error
Reported by: | matt.kaufmann | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Compiler | Version: | trunk |
Keywords: | Cc: |
Description
The attached file produces an error in CCL, startup banner:
Welcome to Clozure Common Lisp Version 1.10-dev-r15881M-trunk (LinuxX8664)!
The error message is as shown below.
% /projects/acl2/lisps/ccl/ccl-15881 Starting 64-bit CCL Welcome to Clozure Common Lisp Version 1.10-dev-r15881M-trunk (LinuxX8664)! ? (load "bug.lisp") > Error: Registers clobbered applying G to (3) > save0 sb: NIL, Was: 4 > save1 sb: #1=(NIL), Was: #1# > save2 sb: *SAVE-SOURCE-LOCATIONS*, Was: *SAVE-SOURCE-LOCATIONS* > save3 sb: #2=#<CCL::LEXICAL-ENVIRONMENT #x302000496AAD>, Was: #2# > > While executing: (:INTERNAL CCL::WITH-COMPILATION-UNIT-BODY CCL::LOAD-FROM-STREAM), in process listener(1). > Type :POP to abort, :R for a list of available restarts. > Type :? for other options. 1 >
Perhaps this related to CCL's optimized handling of CASE expressions in some situations; for example, changing 2 to 8 in this example makes the problem disappear.
By the way, I tried it on a Mac too, with a slightly older version of CCL and got a similar error. Startup banner there was:
Welcome to Clozure Common Lisp Version 1.10-dev-r15835M-trunk (DarwinX8664)!
Attachments (1)
Change History (3)
Changed 8 years ago by matt.kaufmann
comment:1 Changed 8 years ago by matt.kaufmann
The following workaround eliminates the bug.
(setq CCL::*X862-GENERATE-CASEJUMP* nil)
comment:2 Changed 8 years ago by gb
- Resolution set to fixed
- Status changed from new to closed
(In [15883]) When CASE via jump table clauses return multiple values, force stack cleanup.
Fixes ticket:1107 in the trunk.
Note: See
TracTickets for help on using
tickets.
Submit (load "bug.lisp") to see the error.