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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 30 Jul 2026 03:54PM UTC
Jobs 1
Files 599
Run time 2min
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 03:15PM UTC coverage: 85.22% (+0.02%) from 85.197%
30555793209

push

github

web-flow
fix(native): setFields(long double) reconstructs the explicit integer bit (#1262) (#1268)

* fix(native): setFields(long double) reconstructs the explicit integer bit (#1262)

On the x86/RISC-V 80-bit extended path, setFields(long double) had two problems:
its fraction mask 0xFFFF'FFFF'FFFF'FFFF was a no-op (the target parts.fraction is
a 63-bit field, so the assignment truncated implicitly -> -Wconversion / MSVC
C4244), and -- the real defect -- it never set the EXPLICIT integer bit
(parts.bit63), which must be 1 for every value with a nonzero exponent. As a
result the extractFields->setFields round-trip produced NaN for EVERY normal
value (verified: 1.0L, 2.0L, pi, ... all decoded to NaN).

Fix (both non-DOWNCAST copies): mask the fraction to the 63-bit field explicitly
and set parts.bit63 = (exponent != 0). Guarded to the layouts that actually have
the 63-bit-fraction + bit63 fields (UNIVERSAL_ARCH_X86_64 / _RISCV); other
long double layouts (binary128 / double-double, no bit63 field) keep the original
assignment unchanged. Confirmed the issue's open question: the field is NOT too
narrow -- the integer bit has its own field -- so the fix belongs in setFields.

Regression: static/native/float/ieee754.cpp already has a generic
VerifyFieldRoundTrip<Real>; instantiate it for long double, scoped to the 80-bit
x86/RISC-V path (the uint64 field interface can't round-trip a 128-bit fraction,
and the DOWNCAST path is lossy for >53-bit values -- both independent of #1262).

gcc + clang (both non-DOWNCAST on x86_64 here): float/double/long double field
round-trip PASS; full native_float_ieee754 PASS.

Resolves #1262

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

* ci: allow 'native' scope in conventional-commit PR-title lint

The native/ subsystem (ieee754 helpers: extractFields/setFields/etc.) is a
legitimate recurring scope but was missing from the allow-list, so
fix(native): ... PR titles failed lint-pr-title (#1262 / PR #1268).

Re... (continued)

4 of 4 new or added lines in 1 file covered. (100.0%)

41653 of 48877 relevant lines covered (85.22%)

7272832.23 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30555793209.1 30 Jul 2026 03:54PM UTC 599
85.22
GitHub Action Run
Source Files on build 30555793209
  • Tree
  • List 599
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30555793209
  • 4b8b3531 on github
  • Prev Build on main (#30545755105)
  • Next Build on main (#30567691028)
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