Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!feeder.erje.net!eu.feeder.erje.net!news.stack.nl!.POSTED!not-for-mail From: Marco van de Voort Newsgroups: comp.lang.pascal.borland Subject: Re: longint and/or overflow bug? Date: Wed, 31 Oct 2012 10:11:49 +0000 (UTC) Organization: Stack Usenet News Service Lines: 23 Message-ID: References: NNTP-Posting-Host: toad.stack.nl Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: mud.stack.nl 1351678309 68201 2001:610:1108:5010::135 (31 Oct 2012 10:11:49 GMT) X-Complaints-To: abuse@stack.nl NNTP-Posting-Date: Wed, 31 Oct 2012 10:11:49 +0000 (UTC) User-Agent: slrn/0.9.9p1 (FreeBSD) Xref: csiph.com comp.lang.pascal.borland:133 On 2012-10-31, Marco van de Voort wrote: > On 2012-10-30, Jim Leonard 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. Hmm, thinking of it, in Pascal the above is impossible, since range(word) is not a subset of range(integer). Those are special yet again. Still the behaviour is normal and consistent in the Borland lines and compatibles.