Skip to content

Commit 20558e1

Browse files
rfourquetararslan
authored andcommitted
Base.ndigits0z(0, b) must return 0 (fix #22837)
Ref #22838 (cherry picked from commit 33ffc86)
1 parent fb082cc commit 20558e1

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

base/intfuncs.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,7 @@ function ndigits0znb(n::Signed, b::Int)
418418
end
419419

420420
function ndigits0z(n::Unsigned, b::Int)
421+
n == 0 && return 0
421422
b < 0 && return ndigits0znb(signed(n), b)
422423
b == 2 && return sizeof(n)<<3 - leading_zeros(n)
423424
b == 8 && return (sizeof(n)<<3 - leading_zeros(n) + 2) ÷ 3

test/intfuncs.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,8 @@ end
164164

165165
# issue #15911
166166
@inferred string(1)
167+
168+
# issue #22837
169+
for b in [-100:-2; 2:100;]
170+
@test Base.ndigits0z(0, b) == 0
171+
end

0 commit comments

Comments
 (0)