14.9 Modifiers

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

_________________________________________________________________________________________________________
Modifiers

--modifiers---;-public---------------------------------------------
           | ---------name   string constant--||
           | -----alias -: exsptroinrtg constant -----||
           | -----------interrupt------------||
           | -----------noreturn------------||
           | |----------iocheck ------------||
           | ----------call modifiers--------- |
           ----------------------------------

--call modifiers------cdecl-----------------------------------------
              ----cppdecl----|
              |--hardfloat ---|
              |----inline-----|
              |----local-----|
              |--mwpascal---|
              |-msabidefault--|
              --msabicdecl --|
              -nostackframe--|
              ---ovpearslocaadl----|
              ----register----|
              ----safecall----|
              --saveregisters--|
              |--softfloat ---|
              |---stdcall----|
              |sysvabidefault -|
              |-sysvabicdecl--|
              |--vectorcall---|
              ----varargs----
___________________________________________________________________

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