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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 30 Jul 2026 01:48PM UTC
Jobs 1
Files 599
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

30 Jul 2026 01:10PM UTC coverage: 85.197% (-0.02%) from 85.216%
30545755105

push

github

web-flow
fix: eliminate shift-mask narrowing via shared bit_high_mask helper (#1261) (#1267)

The left-shift operators build the upper-bits mask as an unsuffixed 64-bit
literal and implicitly narrow it to the limb type bt:

    bt mask = 0xFFFFFFFFFFFFFFFF << (bitsInBlock - bitsToShift);

so GCC/Clang -Wconversion and MSVC C4244 fire at every instantiation. The
literal's type is also platform-dependent (unsigned long on LP64 vs unsigned
long long on Windows), which is why the two report different messages.

Sibling of #1260 (same warning-clean Epic #1265), so extend the same shared
helper header. Add bit_high_mask<bt>(count, bitsInBlock) to
internal/bit_manipulation.hpp -- the highest `count` bits of a limb, all-ones
shifted left and narrowed explicitly (warning-free, platform-independent) -- and
route the sites through it.

The issue listed 2 files; the idiom was actually in 5 (blockbinary,
blocksignificand, blockfraction, areal, cfloat). The issue's proposed inline
`ALL_ONES` fix would not compile for areal/cfloat (no ALL_ONES limb constant --
cfloat only has ALL_ONES_FR/ALL_ONES_ES), so the shared helper is the uniform
fix and matches the Epic's intent. All 5 files already include
bit_manipulation.hpp from #1260, so no new includes.

Verified: bit_high_mask is -Wconversion/-Werror clean on gcc + clang and matches
the original literal for every shift of uint8/16/32/64; blockbinary<64,bt> <<= k
matches a uint64 shift for all bt and all k (the exercised code path). Regression
added to internal/blockbinary/api/bit_clear_mask.cpp. bb_api, cfloat_api/
assignment, areal_api, posit_api PASS on both compilers; all consumers compile
clean.

Resolves #1261

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

18 of 23 new or added lines in 6 files covered. (78.26%)

8 existing lines in 1 file now uncovered.

41634 of 48868 relevant lines covered (85.2%)

7274196.97 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
60.71
5.71% internal/blockbinary/api/bit_clear_mask.cpp
1
67.33
0.0% include/sw/universal/internal/blockfraction/blockfraction.hpp

Coverage Regressions

Lines Coverage ∆ File
8
93.73
-0.47% include/sw/universal/number/cfloat/cfloat_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 30545755105.1 30 Jul 2026 01:48PM UTC 599
85.2
GitHub Action Run
Source Files on build 30545755105
  • Tree
  • List 599
  • Changed 7
  • Source Changed 7
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30545755105
  • becb0bef on github
  • Prev Build on main (#30536515033)
  • Next Build on main (#30555793209)
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