bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bash arithmetic doesn't give error message on wrap.


From: Andreas Schwab
Subject: Re: Bash arithmetic doesn't give error message on wrap.
Date: Mon, 30 Apr 2007 23:23:12 +0200
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.97 (gnu/linux)

prj@po.cwru.edu (Paul Jarc) writes:

> Richard Neill <rn214@hermes.cam.ac.uk> wrote:
>> I thought testing for overflow was quite simple?
>> Isn't it just a case of looking at the carry-bit, and seeing whether it 
>> gets set?
>
> That's usually how it's done in assembly.  In C, it's somewhat more
> compilcated.  For example:
> result=a*b;
> if (result/a!=b) { report overflow; }

That won't work, since (signed integer) overflow is undefined in C.  A
compiler is allowed to optimize the condition to false.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."




reply via email to

[Prev in Thread] Current Thread [Next in Thread]