14.9 Modifiers

A function or procedure declaration can contain modifiers. Here we list the various possibilities:

_________________________________________________________________________________________________________
Modifiers

--       -----     ----------------------------------------------
  modifiers  |;|public  -     -             --|||
           | ---------nameexpostrritng- expression---||
           | -----alias -: -string-expression -----||
           | ----------- interrupt------------||
           | |-----------noreturn ------------||
           | |-----------iocheck-------------||
           | |------------local--------------||
           | |---------nostackframe ----------||
           | |-----------overload ------------||
           | ----------saveregisters-----------||
           | ------------softfloat-------------||
           | ----------  varargs  -----------||
           ------------call- modifiers------------|
____________________________________________

The call modifiers can be found in the setion on procedural types (section 3.6, page 211). Free Pascal doesn’t support all Turbo Pascal modifiers (although it parses them for compatibility), but does support a number of additional modifiers. They are used mainly for assembler and reference to C object files.

14.9.1 alias
14.9.2 cdecl
14.9.3 cppdecl
14.9.4 export
14.9.5 hardfloat
14.9.6 inline
14.9.7 interrupt
14.9.8 iocheck
14.9.9 local
14.9.10 MS_ABI_Default
14.9.11 MS_ABI_CDecl
14.9.12 MWPascal
14.9.13 noreturn
14.9.14 nostackframe
14.9.15 overload
14.9.16 pascal
14.9.17 public
14.9.18 register
14.9.19 safecall
14.9.20 saveregisters
14.9.21 softfloat
14.9.22 stdcall
14.9.23 SYSV_ABI_Default
14.9.24 SYSV_ABI_CDecl
14.9.25 VectorCall
14.9.26 varargs
14.9.27 winapi