[fpc-pascal]FPC 1.9.0 compiler run time error - switches.

lawrence at paradicesoftware.com lawrence at paradicesoftware.com
Thu Nov 13 08:39:28 CET 2003


Hello again -

Still testing the new 1.9.0 beta compiler (Win32), I have come across
another issue which is much easier to demonstrate:

Take the following program:

program asmtest;

procedure   myasmstuff;
var
   BOB : dword;
begin
   asm
      mov   eax,BOB
      xor   eax,eax
      mov   BOB,eax
   end ['eax'];
end;

begin
   myasmstuff;
end.


If I compile this using PPC386 at the command line (default configuration
file) like so:

E:\Projects\tests>ppc386 -Rintel asmtest
Hint: End of reading config file e:\pp\bin\win32\fpc.cfg
Free Pascal Compiler version 1.9.0 [2003/11/05] for i386
Copyright (c) 1993-2002 by Florian Klaempfl
Target OS: Win32 for i386
Compiling asmtest.pp
Linking asmtest.exe
16 Lines compiled, 0.5 sec

No problem, it compiles and the program runs without any output (as
expected).
But a small change to the command line [adding the -S2 switch], like so:

E:\Projects\tests>ppc386 -Rintel -S2 asmtest
Hint: End of reading config file e:\pp\bin\win32\fpc.cfg
Free Pascal Compiler version 1.9.0 [2003/11/05] for i386
Copyright (c) 1993-2002 by Florian Klaempfl
Target OS: Win32 for i386
Compiling asmtest.pp
Compilation aborted asmtest.pp:8
Runtime error 216 at 0x004CF77E
  0x004CF77E
  0x004437D9
  0x004438DB
  0x00443C34
  0x00479DFB
  0x0047B662
  0x0047BB75
  0x0047BE30
  0x00479C90
  0x0047B662

Is the order of switches on the command line (same thing happens if I modify
the FPC.CFG file) supposed to be significant?

If I put the -S2 switch before the -Rintel switch, it compiles with no
problems....
If I use the -S2 switch *by itself*, I get the RTE 216 again (as opposed to
a list of assembler instructions not recognised, as I would expect)....


And on the positive side, for my existing code that the new version DOES
compile, it makes a much smaller EXE (e.g. 75kb instead of 110kb). This is
fantastic! I can't wait for the remaining bugs to be removed and 2.0 to be
released...


Lawrence.





More information about the fpc-pascal mailing list