14.9 Modifiers

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

_________________________________________________________________________________________________________
Modifiers

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

--call modifiers-------cdecl-----------------------------------------
              -----cppdecl-----|
              -|-- hard  oat----|
              |-----inline------|
              |-----local------|
              |---mwpascal----|
              |-ms_abi_default -|
              --ms_abi_cdecl--|
              ---nostackframe---|
              -----oveparslocaadl-----|
              -----register-----|
              -----safecall-----|
              ---saveregisters---|
              -|---soft  oat ----|
              |----stdcall-----|
              |sysv_abi_default-|
              |-sysv_abi_cdecl--|
              |---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