Skip to content

Commit b2582d0

Browse files
author
Kirill Nesmeyanov
committed
Fix non-dec int literal overflow behaviour
1 parent 22f7cec commit b2582d0

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/Node/Literal/IntLiteralNode.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,13 @@ private static function split(string $literal): array
5050
if ($literal[0] === '0' && isset($literal[1])) {
5151
return [$isNegative, match ($literal[1]) {
5252
// hexadecimal
53-
'x', 'X' => \hexdec(\substr($literal, 2)),
53+
'x', 'X' => \base_convert(\substr($literal, 2), 16, 10),
5454
// binary
55-
'b', 'B' => \bindec(\substr($literal, 2)),
55+
'b', 'B' => \base_convert(\substr($literal, 2), 2, 10),
5656
// octal
57-
'o', 'O' => \octdec(\substr($literal, 2)),
57+
'o', 'O' => \base_convert(\substr($literal, 2), 8, 10),
5858
// octal (legacy)
59-
default => \octdec($literal),
59+
default => \base_convert($literal, 8, 10),
6060
}];
6161
}
6262

0 commit comments

Comments
 (0)