|
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
5711 of 6046 branches covered (94.46%)
Branch coverage included in aggregate %.
2 of 2 new or added lines in 1 file covered. (100.0%)
7 existing lines in 2 files now uncovered.21811 of 23512 relevant lines covered (92.77%)
3873717.73 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 1 |
78.91 |
0.39% | src/lj_opt_fold.c |
| 6 |
94.74 |
-4.31% | src/lj_str.c |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 22665542916.1 | 89 |
93.11 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|