• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tarantool / luajit / 13970826735
93%

Build:
DEFAULT BRANCH: tarantool/master
Ran 20 Mar 2025 01:47PM UTC
Jobs 1
Files 89
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Mar 2025 01:32PM UTC coverage: 92.97% (-0.05%) from 93.017%
13970826735

push

github

Buristan
Fix IR_ABC hoisting.

Reported by pwnhacker0x18. Fixed by Peter Cawley.

(cherry picked from commit 7369eff67)

The `IR_ABC` has 2 different types:
* `IRT_INT` for generic condition check.
* `IRT_P32` as a marker for the invariant checks for upper and lower
  boundaries of the loop index. These checks may be dropped during the
  folding optimization in recording the variant part of the loop.
The checks may be dropped if the instruction is not PHI, the first
operand is invariant, and the upper bound of the array part of the table
isn't changed, or the table itself isn't changed on the trace.

The checks in the `abc_invar` fold rule assume that the constant values
of the first operand of ABC may be dropped. But when this constant value
comes from the folding chain that does CSE, the check is still necessary
if the original instruction (not resulting after loop optimization
substitution and the folding chain) isn't a constant.

Hence, this patch additionally singularizes the `IRT_U32` type for the
`IR_ABC` in the case when the asize is a constant on the trace so it can
be simply dropped from the invariant part of the loop. For `IRT_P32`
type, this patch adds a check that the first operand isn't a constant to
be sure that it isn't a result of the fold chain.

Sergey Kaplun:
* added the description and the test for the problem

Part of tarantool/tarantool#11055

Reviewed-by: Sergey Bronnikov <sergeyb@tarantool.org>
Signed-off-by: Sergey Kaplun <skaplun@tarantool.org>

5700 of 6039 branches covered (94.39%)

Branch coverage included in aggregate %.

5 of 5 new or added lines in 2 files covered. (100.0%)

13 existing lines in 3 files now uncovered.

21729 of 23464 relevant lines covered (92.61%)

2959263.14 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
2
96.43
-0.1% src/lj_record.c
5
87.48
-0.33% src/lj_crecord.c
6
94.74
-4.31% src/lj_str.c
Jobs
ID Job ID Ran Files Coverage
1 13970826735.1 20 Mar 2025 01:47PM UTC 89
92.97
GitHub Action Run
Source Files on build 13970826735
  • Tree
  • List 89
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #13970826735
  • cc96994a on github
  • Prev Build on tarantool/master (#13952971380)
  • Next Build on tarantool/master (#13989956548)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc