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
Bug-bash@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-bash

Reply via email to