aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/intmath.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2026-02-24 22:24:11 +0100
committerGitHub Enterprise <[email protected]>2026-02-24 22:24:11 +0100
commitfb19c8a86e89762ea89df3b361494a055680b432 (patch)
tree65f717270e3b52527c9c34aaeab864aec4b214f2 /src/zencore/intmath.cpp
parentupdated CLAUDE.md (diff)
downloadzen-fb19c8a86e89762ea89df3b361494a055680b432.tar.xz
zen-fb19c8a86e89762ea89df3b361494a055680b432.zip
Fix zencore bugs and propagate content type through IoBufferBuilder (#783)
- Add missing includes in hashutils.h (`<cstddef>`, `<type_traits>`) - Add `ZenContentType` parameter to all `IoBufferBuilder` factory methods so content type is set at buffer creation time - Fix null dereference in `SharedBuffer::GetFileReference()` when buffer is null - Fix out-of-bounds read in trace command-line argument parsing when arg length exactly matches option length - Add unit tests for 32-bit `CountLeadingZeros`
Diffstat (limited to 'src/zencore/intmath.cpp')
-rw-r--r--src/zencore/intmath.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/zencore/intmath.cpp b/src/zencore/intmath.cpp
index 5a686dc8e..32f82b486 100644
--- a/src/zencore/intmath.cpp
+++ b/src/zencore/intmath.cpp
@@ -43,6 +43,12 @@ TEST_CASE("intmath")
CHECK(FloorLog2_64(0x0000'0001'0000'0000ull) == 32);
CHECK(FloorLog2_64(0x8000'0000'0000'0000ull) == 63);
+ CHECK(CountLeadingZeros(0x8000'0000u) == 0);
+ CHECK(CountLeadingZeros(0x0000'0000u) == 32);
+ CHECK(CountLeadingZeros(0x0000'0001u) == 31);
+ CHECK(CountLeadingZeros(0x0000'8000u) == 16);
+ CHECK(CountLeadingZeros(0x0001'0000u) == 15);
+
CHECK(CountLeadingZeros64(0x8000'0000'0000'0000ull) == 0);
CHECK(CountLeadingZeros64(0x0000'0000'0000'0000ull) == 64);
CHECK(CountLeadingZeros64(0x0000'0000'0000'0001ull) == 63);