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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 26 Mar 2026 02:14PM 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 01:46PM UTC coverage: 84.367% (-0.02%) from 84.387%
23597700668

push

github

web-flow
fix(cfloat): add rounding and overflow handling to wide-significand convert path (#608)

* fix(cfloat): handle ALL_ONES_ES round-overflow explicitly in wide path

When rounding carries into the hidden-bit position and the biased
exponent is already ALL_ONES_ES, the wide-significand path left the
result as a no-op, relying on the isnan() remap below. This fails
for two cases:

1. hasMaxExpValues == true: all-ones exponent with zero fraction is a
   valid finite encoding, not NaN, so the remap never fires — producing
   an incorrect mid-range value instead of maxpos/maxneg or inf.

2. isSaturating == true && hasMaxExpValues == false: all-ones exponent
   with zero fraction is infinity, not NaN, so the saturating remap to
   maxpos/maxneg never fires — producing inf instead of maxpos/maxneg.

Fix: explicitly saturate to maxpos/maxneg or set inf and return early,
matching the early overflow handling already in convert().

* test(cfloat): add from_blocktriple regression tests for maxexpvalue conversion

Add missing from_blocktriple.cpp test files to both saturating/maxexpvalue
and nonsaturating/maxexpvalue conversion directories. These exercise the
convert() code path fixed in PR #608, where rounding overflow into the
max-exponent binade was not handled correctly when hasMaxExpValues=true.

- saturating: verifies overflow saturates to maxpos/maxneg (ftt config)
- nonsaturating: verifies overflow maps to +/-inf (ftf config)

Covers es=2 through es=8 across small-to-medium cfloat sizes. The es=8
cases are included unconditionally since the hasMaxExpValues path is
what the fix specifically addressed.

* fix(test): use += to accumulate nrOfFailedTestCases in maxexpvalue from_blocktriple tests

0 of 3 new or added lines in 1 file covered. (0.0%)

9 existing lines in 2 files now uncovered.

44346 of 52563 relevant lines covered (84.37%)

6132421.69 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
94.3
-0.17% include/sw/universal/number/cfloat/cfloat_impl.hpp

Coverage Regressions

Lines Coverage ∆ File
5
50.45
-4.5% include/sw/universal/verification/posit_test_suite_randoms.hpp
4
80.8
-0.67% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
Jobs
ID Job ID Ran Files Coverage
1 23597700668.1 26 Mar 2026 02:14PM UTC 627
84.37
GitHub Action Run
Source Files on build 23597700668
  • 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 #23597700668
  • 5a565aa5 on github
  • Prev Build on main (#23471164318)
  • Next Build on main (#23601107337)
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