|
Ran
|
Jobs
1
|
Files
89
|
Run time
1min
|
Badge
README BADGES
|
push
github
FFI: Prevent sanitizer warning in carith_ptr(). Reported by Sergey Bronnikov. (cherry picked from commit c3b379bf5) The Undefined Behaviour Sanitizer [1] produce a warning about signed integer overflow in the function carith_ptr(), when idx equals INT_MIN in the expression idx = -idx. In practice, negating -2147483648 wraps back to itself instead of producing the correct positive value, leading to incorrect pointer arithmetic in carith_ptr() for MM_sub (pointer subtraction). The patch fixes that by converting idx to unsigned (uintptr_t), computes two's complement negation via bitwise negation + 1 (safe from overflow in unsigned arithmetic), and casts back to ptrdiff_t. This avoids signed overflow entirely and correctly negates even the INT_MIN edge case. [1]: https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html Sergey Bronnikov: * added the description and the test for the problem Part of tarantool/tarantool#12480
5736 of 6058 branches covered (94.68%)
Branch coverage included in aggregate %.
1 of 1 new or added line in 1 file covered. (100.0%)
21884 of 23555 relevant lines covered (92.91%)
3971500.39 hits per line
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 30093835005.1 | 89 |
93.27 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|