Fix undefined behavior when translating define_variable forms
commit46a8c5e43a99c16f06f637228019788d0fe1e7ca
authorKris Katterjohn <katterjohn@gmail.com>
Fri, 4 Feb 2022 00:31:14 +0000 (3 19:31 -0500)
committerKris Katterjohn <katterjohn@gmail.com>
Fri, 4 Feb 2022 00:31:14 +0000 (3 19:31 -0500)
tree29431eeb51860d7f3c8964313fefd337086d7b2a
parent8708d1b64fdaaff6044eff07aec297bd16e49836
Fix undefined behavior when translating define_variable forms

When translating a define_variable form using translate (but not
using, e.g., translate_file or compfile), a DECLARE expression was
being evaluated.  In CL it is undefined what happens when evaluating
such an expression, and this would cause a lisp error under some
lisp implementations.

Now we use DECLAIM instead, since this is not emitted in the
special places where DECLARE expressions are allowed.

No problems with the test suite or share test suite.  A new test
has been added to rtest_translator.
src/trmode.lisp
tests/rtest_translator.mac