Translated if now honors prederror
commit436eaa9c50f82c00d02a83039f0d5adaf3be149d
authorKris Katterjohn <katterjohn@gmail.com>
Sun, 13 Nov 2022 21:48:42 +0000 (13 16:48 -0500)
committerKris Katterjohn <katterjohn@gmail.com>
Sun, 13 Nov 2022 21:48:42 +0000 (13 16:48 -0500)
tree7b44641df77a2a31b0c149d9696fdc3e7c4f6037
parent2e0f088b05c4f67274830d80f4e282fe15b9ab53
Translated if now honors prederror

Commit 74c138c9 changed the translator so that prederror was bound to
true around translated MCONDs.  Prior to that commit, the generated
code was generally incorrect when prederror was false.  See bug #3412
for more.

Now a translated `if` behaves the same as an interpreted `if` when
prederror is false.  If the predicate can't be evaluated to a boolean
value, then an `if` expression is returned.

See also bug #4008.

No problems with the test suite, share test suite or rtest_translator.
New tests have been added to rtest_translator.
src/acall.lisp
src/mlisp.lisp
src/transl.lisp
src/trpred.lisp
tests/rtest_translator.mac