[fpc-pascal]Re-Summarize external variables problem

md md at realmwireless.com
Thu Nov 23 06:56:09 CET 2000

Please disregard all previous references to compiler problems of
external variables.

This is an FPC 1.0.2 problem under Linux.

What I have noticed is that the ($MODE FPC} switch is global and cannot
be toggled
during the compilation of a given pascal unit.  

The compiler mode regulates whether the following line will compile


 test : integer ; cvar ; external ;

This will not compile under DELPHI mode, but it will under FPC mode. 

My workaround would be to use {$MODE} to switch ON the FPC mode and off
immediately after the code
for the external variable.  What happens in fact is the compiler mode
seems locked to either one mode or another
for a given compile and cannot be changed on the fly.

Thus, delphi mode compilations of a given unit fail while FPC mode
compilations succeed.  This appears to be a bug
by not allowing a given compilation of units to compile under different

Some example code:


{$MODE FPC}  //Turn FPC compiler mode on
test : integer ; cvar ; external ;
{$MODE DEFAULT}//Restore original compiler mode

{$MODE FPC}  //Turn FPC compiler mode on
test2 : integer ; external name 'test2' ;   ///(NAMED VERSION)
{$MODE DEFAULT}//Restore original compiler mode

It spits a compiler error about: Syntax error, : expected but ; found.

or for the named version of the declaration

It spits a compiler error about: Syntax error, : expected but NAME

Any help appreciated,

Mark Diener

More information about the fpc-pascal mailing list