Severe bug! :-(And some more bugs.)_(re)

Sat, 28 Jun 1997 18:23:57 +0200 (MET DST)


According to Frank Heckenbach:
> 
> The following program causes an internal compiler error (Linux) or
> causes gpc to crash with page fault (DJGPP), sometimes it hangs.

Fixed.

> Is "Integer(n)" supposed to support bigger types than LongestInt?

No.  Somebody else may implement that ... ;-)

> If not, gpc should give an error if n is too big,

It does so, now.

> The following program writes 0. ("+" doesn't seem to work correctly with
> big integers at all, telling from the asm code.)
> 
> program x;
> var a:integer(128);
> begin
>  a:=$FFFFFFFF;
>  a:=a+1;
>  writeln(integer(a))
> end.

This is correct:  "a + 1" gets the integer value $100000000 in this
example; the cast to `Integer' yields an (uncatched)-: overflow and
the correct value 0 for the lowest 32 bits.

> The following program writes "garbage":
> 
> var x:cardinal(8);
> begin
>  x:=31;
>  writeln(x);
> end.

`x' gets the correct value, but writeln barfs on `cardinal(8)' types.
Working on it.

> With this one, gpc says "initializer element is not constant":
> 
> program x;
> var a:integer(128) value 0;
> begin
> end.

This was connected with the undetected overflow.
(The maximal integer types have 64 bits on the PC).

> At least "=" seems to work with these types, which would make "Cardinal(128)"
> usable for ClassIDs (I hope)... :-)

Sorry to have it taken out again! ;-)

> Also, the n in "Integer(n)" seems to be handled modulo 256.
> If types >256 bits are not supported, an error should be given.

It is now.

> Besides, I'm not too sure if "Integer(0)" is reasonable... ;-)

It's also catched now.

> And now for something completely different...
> [...]

Working on that.

> But apart from these things, a lot of bugs have disappeared! :-)

:-) Fein!  That's what I hoped for.

Thanks for the bug report, and I am glad that there were not much
more bugs.  This give hope that gpc-2.1 can be released within the
next months.

Tschuess,

    Peter

 Dipl.-Phys. Peter Gerwinski, Essen, Germany, free physicist and programmer
peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/ [970201]
 maintainer GNU Pascal [970624] - http://home.pages.de/~gnu-pascal/ [970125]


Peter Gerwinski (peter@agnes.dida.physik.uni-essen.de)

HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada - Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es