// see also 4.2 variable declaration in ref manual //http://www.freepascal.org/docs-html/ref/refse19.html // The curterm6 case in the manual warrants a separate bug report {$if defined(darwin) or defined(os2) or defined(emx) or defined(palmos) or defined(symbian) or defined(watcom) or defined(wdosx) or defined(win32) or defined(wince) or defined(go32v2)} {$define underscoreprefix} {$endif} var curterm1 : integer =1 ; curterm2 : integer =2 ; cvar; // these three are truly external -> no init is possible. curterm3 : integer ; cvar; external; {$ifdef underscoreprefix} curterm4 : integer ; external name '_curterm4b'; {$ifdef unix} {$ifdef darwin} {Êon darwin, dll-vars always get the c-prefix, because otherwise you run into trouble because e.g. global symbols cannot start with 'L' (such symbols are always interpreted as local symbols } curterm5 : integer ; external 'libc' name 'curterm5b'; {$else darwin} curterm5 : integer ; external 'libc' name '_curterm5b'; {$endif} {$endif} {$else underscoreprefix} curterm4 : integer ; external name 'curterm4b'; {$ifdef unix} { on windows, this would actually search in libc.dll } curterm5 : integer ; external 'libc' name 'curterm5b'; {$endif} {$endif underscoreprefix} curterm7 : integer =7 ; cvar; export; curterm8 : integer =8 ; cvar; public; {$ifdef underscoreprefix} curterm9 : integer =9 ; export name '_me'; curterm10 : integer =10 ; public name '_ma'; {$else underscoreprefix} curterm9 : integer =9 ; export name 'me'; curterm10 : integer =10 ; public name 'ma'; {$endif underscoreprefix} curterm11 : integer =11 ; // some declarations to make it compile in theory { the cvar modifier makes sure the c-prefix gets added if necessary } curterm3b : integer = 3; cvar ; export name 'curterm3'; curterm4b :integer = 4; cvar; export; {$ifdef unix} curterm5b :integer = 5; cvar; export; {$endif} // we need a references too, so we print them. begin if (curterm1<>1) then halt(1); if (curterm2<>2) then halt(2); if (curterm3<>3) then halt(3); if (curterm4<>4) then halt(4); {$ifdef unix} if (curterm5<>5) then halt(5); {$endif} if (curterm7<>7) then halt(7); if (curterm8<>8) then halt(8); if (curterm9<>9) then halt(9); if (curterm10<>10) then halt(10); if (curterm11<>11) then halt(11); end.