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

stillwater-sc / universal / 30672084664 / 1
85%
master: 84%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 31 Jul 2026 11:45PM UTC
Files 600
Run time 12s
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

31 Jul 2026 11:09PM UTC coverage: 85.234% (-0.02%) from 85.249%
30672084664.1

push

github

web-flow
fix(internal): clear -Wsign-conversion in blockbinary + blocksignificand (#1280) (#1285)

* fix(internal): clear -Wsign-conversion in blockbinary + blocksignificand (#1280)

Sub-issue of Epic #1279. All fixes are value-preserving; each casts a
value already proven non-negative / in range at the site.

blockbinary.hpp:
- operator=(long long): `rhs & storageMask` promoted the signed rhs to
  uint64_t (storageMask is uint64_t); cast rhs explicitly -- the low
  bits kept by the mask are identical in two's complement
- operator<<= / operator>>=: same shift-path idiom as the integer fix
  (#1283) -- int bitsToShift / blockShift mixing with unsigned
  bitsInBlock / nbits / MSU in the block-shift index arithmetic;
  bitsToShift is > 0 and < bitsInBlock/nbits past the guards, so the
  casts are exact. Upper-block mask index cast into the shared
  bit_high_mask<bt> helper. Moved one over-120-column trailing comment
  onto its own line.

blocksignificand.hpp: identical shift-path idiom, same treatment
(including the same trailing-comment reflow).

Verified -Wsign-conversion clean for both headers on gcc AND clang under
a multi-config posit/cfloat instantiation; no new -Wconversion introduced.
blockbinary shift_left/shift_right + addition/multiplication/division/
rounding and blocksignificand addition/multiplication/rounding
regressions PASS on both compilers; multi-config posit/cfloat arithmetic
smoke runs clean.

Relates to #1279
Resolves #1280

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(internal): enforce MSU_MASK invariant in operator<<= (CodeRabbit, #1280)

CodeRabbit (Major) correctly flagged that operator<<= in blockbinary and
blocksignificand did not re-null the unused most-significant-block storage
bits before returning. A left shift can move valid bits above nbits into
that unused region; because iszero() and operator== compare RAW blocks,
the stray bits made a shifted value compare unequal to zero / to its
canonical for... (continued)

41710 of 48936 relevant lines covered (85.23%)

7271762.63 hits per line

Source Files on job 30672084664.1
  • Tree
  • List 600
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 30672084664
  • aa4a1a0a on github
  • Prev Job for on main (#30660486273.1)
  • Next Job for on main (#30681506242.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc