Some bug reports
Tue, 25 Feb 1997 15:01:59 GMT
Hi everyone!
I've got a number of bug reports. Perhaps some of them are already known,
but I didn't find any information about them. I'm listing all the problems
I encountered when I ported a BP program to gpc.
The bugs were tested with 2.0, and "verified" with 970221.
1.
The output of a compiler program is not redirectable (neither as stdout,
nor stderr).
2.
Writeln('a','':5,'b');
I think it should write "a b", but it just writes "ab".
3.
My standard way for "variable size arrays" in BP doesn't work in gpc:
PROGRAM t;
CONST MaxVar=$FFF0;
TYPE
X=Integer;
XArray=ARRAY[1..MaxVar DIV SizeOf(X)] OF X; {}
BEGIN
END.
The error message for the line "{}" is:
subrange bounds are not of the same type
ordinal type expected
It doesn't depend on the type of X, and it doesn't help to declare a
constant with value MaxVar DIV SizeOf(X).
4.
Problem with CONST parameters:
PROGRAM x;
TYPE t=ARRAY[1..1] OF Integer;
PROCEDURE p(CONST c:t);
BEGIN
IF c[1]=0 THEN
END;
BEGIN
END.
gpc crashes with:
Exiting due to signal SIGSEGV
Page fault at...
(I could provide all the register values if necessary.)
It doesn't matter if I invoce it as
gpc x.p
or gpc -o x x.p
or gpc -c x.p
It doesn't seem to depend on the type of t (it must only be an array), and
it doesn't matter if c[1] is accessed as above, or e.g. in a Write statement.
5.
Initialized set variables don't seem to work:
PROGRAM t;
TYPE
IByte=__byte__ Integer;
Byte=__unsigned__ IByte;
ByteSet=SET OF Byte;
VAR
m:ByteSet VALUE [1,2,3]; {"CONST ... = ..." gives the same result}
k:Integer; {or k:Byte - the same}
BEGIN
{ m:=[1,2,3]; ...then it works correctly }
FOR k:=0 TO $FF DO
IF k IN m THEN Write(Integer(k))
END.
The numbers written are more or less random.
6.
Last but not least:
Is there anything like TP's Exit (return from current procedure/function)?
I couldn't find it in the docs.
Frank
Frank Heckenbach (heckenb@mi.uni-erlangen.de)
HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada -
Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es