Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix string.char() recording with no arguments.
(cherry picked from commit dfa692b) `string.char()` call without arguments yields an empty string. When JIT machinery records the aforementioned call it doesn't handle case without arguments. Each recording fast function expects 1 result by default. Hence, when return from this call is recorded the framelink slot is used as a result. It is loaded into the corresponding slot as an IR with `IRT_NUM` type. It leads to assertion failure in `rec_check_slots()`, when a next bytecode is recorded, because type of TV on the stack (`LJ_STR`) isn't the same as IR (and TRef) type. This patch handles the case without arguments by the loading of IR with empty string reference into the corresponding slot. Sergey Kaplun: * added the description and the test for the problem Resolves tarantool/tarantool#6371
- Loading branch information