Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix maxslots when recording BC_VARG.
Analyzed by Sergey Kaplun. (cherry-picked from commit 94ada59) While recording BC_VARG `J->maxslot` isn't shrunk to the effective stack top. This leads to dead values stored in the JIT slots and the following assertion failure for these slots check in `rec_check_slots()`. Note, that `rec_varg()` modifies `maxslot` only under the condition that `maxslot` should be increased, but the dead values are left for the opposite case. This patch removes the condition inside `rec_varg()` only for the case when varargs are not defined on trace (`framedepth` is 0), but the similar issue still occurs for the case when varargs are defined on the trace. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8825
- Loading branch information