Closes #1453.
Turns out this had nothing to do with abortUnless emitting an event from combine_env (where the crash came from).
Rather, it was caused by abortUnless's enter returning false as the caller state (for combine_env), rather than ctx.local. The witness lifter assumed it to always be ctx.local.
abortUnless might be the only analysis which uses this aspect of enter, which is why this never occurred before.
TODO
[x] Rerun abortUnless benchmarks to see if issue is fixed. (#1464)
[x] Make sure witnesses are still as they were before. (#1470)
Closes #1453. Turns out this had nothing to do with abortUnless emitting an event from
combine_env
(where the crash came from).Rather, it was caused by abortUnless's
enter
returningfalse
as the caller state (forcombine_env
), rather thanctx.local
. The witness lifter assumed it to always bectx.local
. abortUnless might be the only analysis which uses this aspect ofenter
, which is why this never occurred before.TODO