Pragma Export_Procedure (GNAT Reference Manual) (original) (raw)
2.61 Pragma Export_Procedure ¶
Syntax:
pragma Export_Procedure ( [Internal =>] LOCAL_NAME [, [External =>] EXTERNAL_SYMBOL] [, [Parameter_Types =>] PARAMETER_TYPES] [, [Mechanism =>] MECHANISM]);
EXTERNAL_SYMBOL ::= IDENTIFIER | static_string_EXPRESSION | ""
PARAMETER_TYPES ::= null | TYPE_DESIGNATOR {, TYPE_DESIGNATOR}
TYPE_DESIGNATOR ::= subtype_NAME | subtype_Name ' Access
MECHANISM ::= MECHANISM_NAME | (MECHANISM_ASSOCIATION {, MECHANISM_ASSOCIATION})
MECHANISM_ASSOCIATION ::= [formal_parameter_NAME =>] MECHANISM_NAME
MECHANISM_NAME ::= Value | Reference
This pragma is identical to Export_Function
except that it applies to a procedure rather than a function and the parametersResult_Type
and Result_Mechanism
are not permitted. GNAT does not require a separate pragma Export
, but if none is present, Convention Ada
is assumed, which is usually not what is wanted, so it is usually appropriate to use this pragma in conjunction with a Export
or Convention
pragma that specifies the desired foreign convention.
Special treatment is given if the EXTERNAL is an explicit null string or a static string expressions that evaluates to the null string. In this case, no external name is generated. This form still allows the specification of parameter mechanisms.