|
From: | John Reiser |
Subject: | Re: [bash-bug] Can arithmetic evaluation trap more than just division by zero? |
Date: | Tue, 06 Apr 2010 08:32:50 -0700 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100330 Fedora/3.0.4-1.fc11 Thunderbird/3.0.4 |
Program received signal SIGFPE, Arithmetic exception. 0x0000000000462cd5 in exp2 () at expr.c:761 761 val1 /= val2; (gdb) print val1 $1 = -9223372036854775808 (gdb) print val2 $2 = -1 which is strange.
Not at all. Overflow invokes undefined behaviour.
But why there is no overflow on 32bit system?
No *detected* overflow. For instance, if computing (2 ** 63) gives 0 (the low-order 32 bits of the true result) and does not detect the overflow (or ignores the overflow, either by intention or by bug), then there is no problem with computing (0 / -1). --
[Prev in Thread] | Current Thread | [Next in Thread] |