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 -- Frank Heckenbach, frank@g-n-u.de, http://fjf.gnu.de/ GPC To-Do list, latest features, fixed bugs: http://agnes.dida.physik.uni-essen.de/~gnu-pascal/todo.html