Miklos Cserzo wrote:
something went terribly wrong with the latest release of GPC on IRIX. Here is a short test code:
program testit;
var x:real;
begin x:=355/113; writeln(round(355/113):10); writeln(355/113:12:8); writeln(round(355/113):10,' ',355/113:12:8); writeln(355/113:12:8,' ',round(355/113)); writeln(round(355/113*100)); writeln(round(355/113*10000)); writeln(round(x):10); writeln(x:12:8); writeln(round(x),' ',x:12:8); writeln(round(x*100)); writeln(round(x*10000)); end.
And here is the output piped to 'cat -v' (note the invisible characters):
3
0.000.^@^@00 3 3.15923292 0.000.^@^@00 3 314 31416 3 0.000.^@^@00 3 0.00000000 314 31416
Also note that the real value in the third line is incorrect.
It's quite likely that a number of errors reported by the test suite as well as the one above (miklos5.pas) are due to a bug in rts/move.pas which is also found by the test suite:
TEST moveword.pas: Failed: 5: 6/4
So, this one must be fixed first, then (I hope) many other errors are also gone.
I've looked through rta/move.pas and I'm changing a few things, though I'm not sure what exactly is (was) wrong. Could you please try the following program. If it gives two different values, I might have found the cause of the problem and can fix it.
program Foo; begin WriteLn (SizeOf (MedWord), ' ', AlignOf (MedWord)) end.
Frank