[Info-vax] DCL Integer Overflow

Arne Vajhøj arne at vajhoej.dk
Sun Jul 2 16:12:43 EDT 2017


On 7/2/2017 9:15 AM, VAXman- at SendSpamHere.ORG wrote:
> In article <oj8oc5$8s5$1 at panix2.panix.com>, kludge at panix.com (Scott Dorsey) writes:
>> On 6/30/2017 5:06 AM, GerMarsh wrote:
>>> I know that there have been a few discussions about
>>> enhancing/replacing DCL, but I wonder if someone will fix the old
>>> integer overflow which has been there since the year dot...
>>>
>>> $ int=%x7fffffff
>>> $ sho sym int
>>>     INT = 2147483647   Hex = 7FFFFFFF  Octal = 17777777777
>>> $ int=int+1
>>> $ sho sym int
>>>     INT = -2147483648   Hex = 80000000  Octal = 20000000000
>>
>> This is not a bug, it's a feature.
>> If you don't want it to roll over, what DO you want it to do?
>> Halt with an error?
> 
> Halt and Catch Fire!
> 
> In need of real math?  Use Fortran!

Yes.

But note that it does not change much.

$ type intovf.for
       PROGRAM INTOVF
       INTEGER*4 V
       V = Z'7FFFFFFF'
       WRITE(*,100) V,V,V
       V = V + 1
       WRITE(*,100) V,V,V
100   FORMAT(1X,I,Z,O)
       END
$ for/old/warn=all intovf.for
$ link intovf
$ run intovf
   2147483647    7FFFFFFF 17777777777
  -2147483648    80000000 20000000000

Arne





More information about the Info-vax mailing list