diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2018-03-16 20:13:44 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2018-03-16 20:13:44 -0700 |
commit | 7d94e4b2e24f22de9e12908ff610d4ac7823e1f9 (patch) | |
tree | 17469de90ac4a85c8a5159efca9c7115743aff90 | |
parent | d74778b6bf799cadf2f8de8b06e6e70e2ea733bb (diff) | |
download | txr-7d94e4b2e24f22de9e12908ff610d4ac7823e1f9.tar.gz txr-7d94e4b2e24f22de9e12908ff610d4ac7823e1f9.tar.bz2 txr-7d94e4b2e24f22de9e12908ff610d4ac7823e1f9.zip |
compiler: closure bug: (dframe ...) without (end ...).
* share/txr/stdlib/compiler.tl (compiler comp-lambda): When
we have specials we must generate an extra (end ...), to
terminate the (dframe ...) that we inserted.
-rw-r--r-- | share/txr/stdlib/compiler.tl | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl index 7842f558..f7ae0bc3 100644 --- a/share/txr/stdlib/compiler.tl +++ b/share/txr/stdlib/compiler.tl @@ -319,6 +319,8 @@ (dreg me.(get-dreg special))) ^(bindv ,sub-bind.loc ,dreg))))) ,*bfrag.code + ,*(if specials + ^((end ,bfrag.oreg))) (end ,bfrag.oreg) ,lskip) (uni [reduce-left uni ifrags nil .fvars] |