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

kaidokert / fixed-bigint-rs / 26996066403
98%
main: 98%

Build:
Build:
LAST BUILD BRANCH: asm-grep-helper-scope
DEFAULT BRANCH: main
Ran 05 Jun 2026 04:50AM UTC
Jobs 1
Files 26
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

05 Jun 2026 04:49AM UTC coverage: 98.316%. Remained the same
26996066403

Pull #121

github

kaidokert
Skip normalize_shift_amount on the Ct path

`normalize_shift_amount` contains `if bits >= bit_size_u32` (a flag-
based branch derived from the shift amount) and `bits % bit_size_u32`
(variable-time modulo). Both are side-channel risks on Ct when bits
is secret, even though current LLVM happens to pattern-match the
power-of-2 BIT_SIZE cases into branchless / mask-based codegen.

The Ct path doesn't actually need the overflow detection. `const_shl_ct`
/ `const_shr_ct` are barrel shifters that iterate `usize::BITS` times
unconditionally; their per-bit dispatch invokes `const_shl_impl` /
`const_shr_impl` with non-tainted `amount = 1 << k`, and any
out-of-range cumulative shift collapses to zero via `nwords >= N`
inside those helpers. So `target << (bits as usize)` already produces
zero for `bits >= BIT_SIZE` without any explicit overflow detection.

Replace the Ct arm with just `target << (bits as usize)` (and the
mirror for shr). Removes the `normalize_shift_amount` dependency from
the Ct path entirely, so the CT property is structural rather than
emergent from LLVM pattern recognition. Library tests still 139/139;
ctgrind on aarch64 docker still 189/4.

Caveat: on 16-bit-usize targets (AVR), `bits as usize` truncates for
bits > 65535 — same correctness trade-off the existing Shl<usize>
already has on those targets, and AVR is asm-grep-only, not a ctgrind
target.
Pull Request #121: Add category ASYM: asymmetric-taint regression fixtures

2860 of 2909 relevant lines covered (98.32%)

367.57 hits per line

Jobs
ID Job ID Ran Files Coverage
1 26996066403.1 05 Jun 2026 04:50AM UTC 26
98.32
GitHub Action Run
Source Files on build 26996066403
  • Tree
  • List 26
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26996066403
  • Pull Request #121
  • PR Base - main (#26868591246)
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