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

stillwater-sc / universal / 25288593758
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: fix/issue-ci-ereal-regression-runtime
DEFAULT BRANCH: master
Ran 03 May 2026 07:56PM UTC
Jobs 1
Files 648
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

03 May 2026 07:29PM UTC coverage: 84.206% (+0.04%) from 84.171%
25288593758

push

github

web-flow
feat(dfixpnt): full constexpr support across all operators (#803)

* feat(dfixpnt): full constexpr support across all operators

Promotes dfixpnt (decimal fixed-point) to fully constexpr across
construction, arithmetic (+, -, *, /, +=, -=, *=, /=), increment/
decrement (++/--), comparison (==, !=, <, >, <=, >=), unary negation,
and conversion-out (operator int/long/long long/unsigned long long/
float/double).  First static-storage-tier extension under Epic #723
beyond the cascade trio + dd/qd.

The work spans two files: the underlying blockdecimal storage and
dfixpnt itself.

blockdecimal changes (internal/blockdecimal/blockdecimal.hpp):
  - Constructors taking int/long/long long/unsigned long long: marked
    constexpr.  Added member-initializer list (_negative{false},
    _block{}) so the constexpr constructor body can safely call
    convert_unsigned/convert_signed on a fully-initialized object.
    The trivial default constructor (= default) is untouched.
  - Assignment operators for native integer types: marked constexpr.
  - Conversion-out operators (long long, unsigned long long, int,
    long, unsigned int, unsigned long, float, double): marked constexpr.
  - Digit access (digit, setdigit) and queries (iszero, sign, isneg,
    ispos): marked constexpr.  assert() calls replaced with
    "caller-enforced precondition" comments since C++20 assert is not
    constexpr-clean.
  - Modifiers (clear, setsign, setbits, maxval): marked constexpr.
  - Conversion (to_uint64, to_long_long, to_double): marked constexpr.
  - Unary negation, +=, -=, *=, /=, %=, <<=, >>=: marked constexpr.
  - operator/= and operator%=: std::cerr divide-by-zero diagnostic
    guarded under !std::is_constant_evaluated() so the function is
    fully constexpr-callable when the THROW configuration is off.
  - shift_left, shift_right: marked constexpr.
  - Free comparison operators (==, !=, <, >, <=, >=): marked constexpr.
    operator<= rebuilt as operator< || operator==, operato... (continued)

80 of 84 new or added lines in 2 files covered. (95.24%)

13 existing lines in 3 files now uncovered.

45775 of 54361 relevant lines covered (84.21%)

6512789.94 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
89.59
2.19% include/sw/universal/internal/blockdecimal/blockdecimal.hpp

Coverage Regressions

Lines Coverage ∆ File
8
93.48
-0.48% include/sw/universal/number/cfloat/cfloat_impl.hpp
3
80.58
-0.67% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
2
89.59
2.19% include/sw/universal/internal/blockdecimal/blockdecimal.hpp
Jobs
ID Job ID Ran Files Coverage
1 25288593758.1 03 May 2026 07:56PM UTC 648
84.21
GitHub Action Run
Source Files on build 25288593758
  • Tree
  • List 648
  • Changed 5
  • Source Changed 2
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25288593758
  • 046b71c9 on github
  • Prev Build on main (#25286506672)
  • Next Build on main (#25291271294)
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