|
Ran
|
Jobs
1
|
Files
89
|
Run time
1min
|
Badge
README BADGES
|
push
github
DUALNUM: Improve/fix edge cases of unary minus. Thanks to Sergey Kaplun. (cherry picked from commit 707c12bf0) In a single-number build (default for x86/x64), `-(0)` is always `-0` due to its number type. However, in DUALNUM mode, the `0` may have the integer type, and for this integer, `BC_UNM` has no effect. `0` may be represented via number or integer type, where the resulting `0` is constructed during initial parsing (`lj_strscan_scan()`) or arithmetic operations (`BC_MODVV`). This inconsistency may break the JIT semantics and lead to the assertion failure in the `lj_check_slots()`. This patch fixes the incorrect `BC_UNM` for integer operand 0. Also, the narrowing optimization for the unary minus should be more strict to avoid incorrect narrowing for integer slots and make JIT intact with the VM semantics. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#12134 Reviewed-by: Sergey Bronnikov <sergeyb@tarantool.org> Signed-off-by: Sergey Kaplun <skaplun@tarantool.org> (cherry picked from commit e724c7e06)
5709 of 6046 branches covered (94.43%)
Branch coverage included in aggregate %.
2 of 2 new or added lines in 1 file covered. (100.0%)
8 existing lines in 2 files now uncovered.21780 of 23515 relevant lines covered (92.62%)
3886260.83 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 3 |
92.82 |
0.0% | src/lib_ffi.c |
| 5 |
85.59 |
-2.18% | src/lj_sysprof.c |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 22911308014.1 | 89 |
92.99 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|