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

stillwater-sc / universal / 30660486273
85%
master: 84%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 31 Jul 2026 08:25PM UTC
Jobs 1
Files 600
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

31 Jul 2026 07:48PM UTC coverage: 85.249% (+0.02%) from 85.229%
30660486273

push

github

web-flow
fix(integer): clear -Wsign-conversion in integer/primes/lns (#1283) (#1284)

* fix(integer): clear -Wsign-conversion in integer/primes/lns (#1283)

Sub-issue of Epic #1279 (-Wsign-conversion cleanup). All fixes are
value-preserving; each casts a value already proven non-negative /
in-range at the site, or replaces a signedness-changing literal.

integer_impl.hpp (shift operators <<=/>>=):
- guard the block-shift index arithmetic where int bitsToShift/blockShift
  mixes with unsigned bitsInBlock/nbits/MSU; bitsToShift is > 0 past the
  guards, so static_cast<unsigned> is exact
- upper-block mask now uses the shared bit_high_mask<bt>(#1261) helper,
  which also states the truncation explicitly (was a raw 64-bit literal
  shift that narrowed implicitly)
- assign(int64_t): low-bit test v & 0x1ull -> (v & 1) != 0; masking with a
  signed 1 keeps the operation in int64 (correct for negative v) instead
  of promoting v to uint64
- operator<<: width padding casts std::streamsize width (guarded
  width > s.size(), so positive) before subtracting the string size

primes.hpp: printPrimes column counter int -> size_t (compared against
size_t COL_WIDTH/PAGE_WIDTH).

lns_impl.hpp: setbit(i + shiftLeft) with shiftLeft used as a left-shift
count (>= 0 on this path) -> cast to unsigned.

Verified -Wsign-conversion clean for all three headers on gcc and clang;
no new -Wconversion introduced. integer shift_left/shift_right/division/
remainder and lns conversion regressions PASS on both compilers.

Relates to #1279

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

* fix(integer): address CodeRabbit review on #1283

- revert the unsigned-path low-bit test (convert_unsigned) to its original
  `v & 0x1ull`: `v` is uint64_t there, so it never triggered
  -Wsign-conversion; a global sed had changed it and attached a comment
  that (correctly, per review) described the signed path
- keep only the signed-path change (int64_t v) where the comment is accurate... (continued)

14 of 16 new or added lines in 2 files covered. (87.5%)

41698 of 48913 relevant lines covered (85.25%)

7267429.29 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
91.04
0.01% include/sw/universal/number/integer/integer_impl.hpp
1
87.27
0.0% include/sw/universal/number/lns/lns_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 30660486273.1 31 Jul 2026 08:25PM UTC 600
85.25
GitHub Action Run
Source Files on build 30660486273
  • Tree
  • List 600
  • Changed 4
  • Source Changed 3
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30660486273
  • 228a57c1 on github
  • Prev Build on main (#30642983746)
  • Next Build on main (#30672136635)
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