push
github
Check for IR_HREF vs. IR_HREFK aliasing in non-nil store check. Thanks to Peter Cawley. (cherry picked from commit 658530562) The `lj_opt_fwd_wasnonnil()` skips the check for HREF and HREFK that may alias. Hence, the guard for the non-nil value may be skipped, and the `__newindex` metamethod call is omitted too. This patch adds the aforementioned check for different reference types (HREF vs. HREFK), which were not detected by the previous analysis. Also, the helper macro `irt_isp32()` is introduced to check that the IR type is `IRT_P32` (KSLOT type). Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#9924 Reviewed-by: Maxim Kokryashkin <m.kokryashkin@tarantool.org> Reviewed-by: Sergey Bronnikov <sergeyb@tarantool.org> Signed-off-by: Sergey Kaplun <skaplun@tarantool.org>
5664 of 6021 branches covered (94.07%)
Branch coverage included in aggregate %.
1 of 1 new or added line in 1 file covered. (100.0%)
4 existing lines in 3 files now uncovered.21623 of 23431 relevant lines covered (92.28%)
2911322.16 hits per line