Richard Neill wrote:
> Bash Version: 3.2
> Patch Level: 13
> Release Status: release
>
> Description:
> $ echo $((4000000000*4000000000)
> -2446744073709551616
>
> Repeat-By:
> Do some arithmetic in bash $((....)).
> If the numbers are out of range, the output will be wrong in
> all sorts of interesting ways. No error message is given.
>
> Fix:
> Arbitrary-precision maths would be nice. But at least, could we
> have an error message if an overflow occurs?
>
> The man page says:
> "Evaluation is done in fixed-width integers with no
> check for overflow..."
> but I'd suggest this represents a bug, not a feature.
I'm comfortable with the current behavior. POSIX requires that expressions
be evaluated according to the C standard, and that standard leaves the
treatment of integer overflow as undefined.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
Live Strong. No day but today.
Chet Ramey, ITS, CWRU [EMAIL PROTECTED] http://cnswww.cns.cwru.edu/~chet/
_______________________________________________
Bug-bash mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-bash