Groups | Search | Server Info | Login | Register
Groups > comp.lang.pascal.borland > #132
| From | Marco van de Voort <marcov@toad.stack.nl> |
|---|---|
| Newsgroups | comp.lang.pascal.borland |
| Subject | Re: longint and/or overflow bug? |
| Date | 2012-10-31 09:35 +0000 |
| Organization | Stack Usenet News Service |
| Message-ID | <slrnk91s66.1ddn.marcov@toad.stack.nl> (permalink) |
| References | <a3cac83f-4bb6-46ae-a9ab-70a7c0d73e5d@s18g2000yqh.googlegroups.com> |
On 2012-10-30, Jim Leonard <mobygamer@gmail.com> wrote:
>
> var
> l:longint;
> w1,w2:word;
>
> begin
> w1:=val1; w2:=val2;
> l:=w1 * w2; {Throws runtime 215 "arithmetic overflow" if $Q+}
typing:
longint :=word * word
Pascal rule is afaik that an expression is evaluated in (at least?) the
combined range of the operands. Which is word.
So the above translates to
tempresult: word = word * word
longint:=convert(word,longint,tempresult);
Note that FPC/Delphi do the same with 64-bit results (in 32-bit mode).
Back to comp.lang.pascal.borland | Previous | Next — Previous in thread | Next in thread | Find similar
longint and/or overflow bug? Jim Leonard <mobygamer@gmail.com> - 2012-10-30 08:56 -0700
Re: longint and/or overflow bug? Vinzent Höfler <0439279208b62c95f1880bf0f8776eeb@t-domaingrabbing.de> - 2012-10-30 18:18 +0100
Re: longint and/or overflow bug? Jim Leonard <mobygamer@gmail.com> - 2012-10-30 12:31 -0700
Re: longint and/or overflow bug? rugxulo@gmail.com - 2012-10-30 14:50 -0700
Re: longint and/or overflow bug? Marco van de Voort <marcov@toad.stack.nl> - 2012-10-31 09:35 +0000
Re: longint and/or overflow bug? Marco van de Voort <marcov@toad.stack.nl> - 2012-10-31 10:11 +0000
csiph-web