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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 26 Mar 2026 03:23PM UTC
Jobs 1
Files 627
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

26 Mar 2026 02:54PM UTC coverage: 84.372% (+0.005%) from 84.367%
23601107337

push

github

web-flow
fix(cfloat): full-precision cross-config converting constructor (#612)

* fix(cfloat): full-precision cross-config converting constructor

Replace unconditional double marshalling with direct blocktriple
conversion, eliminating silent 53-bit precision truncation for
wide cfloat types.

* test(cfloat): add exhaustive cfloat-to-cfloat cross-config conversion regression tests

Exercises the full-precision converting constructor path for various
narrowing and widening configurations (cfloat<12,4>->cfloat<8,3>,
cfloat<8,2>->cfloat<16,5>, cfloat<8,3>->cfloat<12,4>) as well as
saturating+subnormal+maxexp variants (cfloat<16,5,ttt>->cfloat<8,3,ttt>)
and special-value spot checks (NaN, ±inf, zero, maxpos/maxneg).

* test(cfloat): guard double oracle with static_assert on fraction-bit width

Ravenwater correctly noted that using double as the oracle reference is only
valid when both Source and Target have at most 52 fraction bits (the double
mantissa limit). Add a static_assert that enforces this precondition so the
test cannot silently produce false-positive results for wider configurations.
Also expand the file-level comment to explain the oracle limitation and note
that efloat/ereal or expression-template analysis would be needed for types
wider than double.

* fix(cfloat): address CodeRabbit review comments on converting constructor and tests

cfloat_impl.hpp:
- Fast-path guard: change (fbits < 64) to (fbits + addRbits) < 64 to prevent
  undefined behavior when the left-shift amount (fbits + addRbits - srcFbits)
  would be >= 64 for large target fraction widths
- Wide-path subnormal: remove incorrect srcScale -= shift subtraction; the
  bit-copy loop already places bits at the right positions via the offset
  alignment, so subtracting shift applied the normalization correction twice;
  set srcScale = MIN_EXP_NORMAL with no further adjustment
- Cross-block static_assert: tighten from (nnbits <= 64) to (srcFbits <= 52)
  so the double-fallback path is only us... (continued)

21 of 28 new or added lines in 1 file covered. (75.0%)

3 existing lines in 2 files now uncovered.

44372 of 52591 relevant lines covered (84.37%)

6132704.28 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
94.46
0.16% include/sw/universal/number/cfloat/cfloat_impl.hpp

Coverage Regressions

Lines Coverage ∆ File
2
89.8
-0.57% include/sw/universal/number/posito/posito_impl.hpp
1
80.58
-0.22% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
Jobs
ID Job ID Ran Files Coverage
1 23601107337.1 26 Mar 2026 03:23PM UTC 627
84.37
GitHub Action Run
Source Files on build 23601107337
  • Tree
  • List 627
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23601107337
  • ffdd1422 on github
  • Prev Build on main (#23597700668)
  • Next Build on main (#23619243161)
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