bug: 64bit arithmetic/number parsing

Szász Gergely <[email protected]> Thu, 13 Feb 2025 16:00:55 +0000
Newsgroups org.kernel.vger.dash
Message-ID <20250213160055.ymjwvpbwsgpvif3p@stanc>
Hello,

$ dash
$ echo $((0x8000000000000000))
9223372036854775807
$ printf %x\\n $((0x8000000000000000))
7fffffffffffffff
$ printf "%x %x\n" $((0x8000000000000000)) $((0x8000000000000000-1))
7fffffffffffffff 7ffffffffffffffe
$ echo $((-9223372036854775808))
-9223372036854775807
$ x=0x8000000000000000
$ echo $((x))
dash: 6: Illegal number: 0x8000000000000000
$ exit

$ bash
$ echo $((0x8000000000000000))
-9223372036854775808
$ printf %x\\n $((0x8000000000000000))
8000000000000000
$ printf "%x %x\n" $((0x8000000000000000)) $((0x8000000000000000-1))
8000000000000000 7fffffffffffffff
$ echo $((-9223372036854775808))
-9223372036854775808
$ x=0x8000000000000000
$ echo $((x))
-9223372036854775808

Thanks,
Gergely