14.9 Modifiers

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

_________________________________________________________________________________________________________
Modifiers

--modifiers---;-public----------------------------------------------
           | ---------name   string- expression---||
           | -----alias -: exsptroinrgt-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 210). 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