Annex L - Language-defined Pragmas (informative)

18
Jun

Language-Defined Pragmas

1 {pragma} This Annex summarizes the definitions given elsewhere of the language-defined pragmas.

2 pragma All_Calls_Remote[(library_unit_name)]; — See §E.2.3.

2.1/2 pragma Assert([Check =>] boolean_expression[, [Message =>] string_expression]); — See §11.4.2.

2.2/2 pragma Assertion_Policy(policy_identifier); — See §11.4.2.

3 pragma Asynchronous(local_name); — See §E.4.1.

4 pragma Atomic(local_name); — See §C.6.

5 pragma Atomic_Components(array_local_name); — See §C.6.

6 pragma Attach_Handler(handler_name, expression); — See §C.3.1.

7 pragma Controlled(first_subtype_local_name); — See §13.11.3.

8 pragma Convention([Convention =>] convention_identifier,[Entity =>] local_name); — See §B.1.

8.1/2 pragma Detect_Blocking; — See §H.5.

9 pragma Discard_Names[([On => ] local_name)]; — See §C.5.

10 pragma Elaborate(library_unit_name{, library_unit_name}); — See §10.2.1.

11 pragma Elaborate_All(library_unit_name{, library_unit_name}); — See §10.2.1.

12 pragma Elaborate_Body[(library_unit_name)]; — See §10.2.1.

13 pragma Export(
     [Convention =>] convention_identifier, [Entity =>] local_name
  [, [External_Name =>] string_expression] [, [Link_Name =>] string_expression]); — See §B.1.

14 pragma Import(
     [Convention =>] convention_identifier, [Entity =>] local_name
  [, [External_Name =>] string_expression] [, [Link_Name =>] string_expression]); — See §B.1.

15 pragma Inline(name {, name}); — See §6.3.2.

16 pragma Inspection_Point[(object_name {, object_name})]; — See §H.3.2.

17 pragma Interrupt_Handler(handler_name); — See §C.3.1.

18 pragma Interrupt_Priority[(expression)]; — See §D.1.

19 pragma Linker_Options(string_expression); — See §B.1.

20 pragma List(identifier); — See §2.8.

21 pragma Locking_Policy(policy_identifier); — See §D.3.

21.1/2 pragma No_Return(procedure_local_name{, procedure_local_name}); — See §6.5.1.

22 pragma Normalize_Scalars; — See §H.1.

23 pragma Optimize(identifier); — See §2.8.

24 pragma Pack(first_subtype_local_name); — See §13.2.

25 pragma Page; — See §2.8.

25.1/2 pragma Partition_Elaboration_Policy (policy_identifier); — See §H.6.

25.2/2 pragma Preelaborable_Initialization(direct_name); — See §10.2.1.

26 pragma Preelaborate[(library_unit_name)]; — See §10.2.1.

27 pragma Priority(expression); — See §D.1.

27.1/2 pragma Priority_Specific_Dispatching (
     policy_identifier, first_priority_expression, last_priority_expression); — See
§D.2.2.

27.2/2 pragma Profile (profile_identifier {, profile_pragma_argument_association}); — See §D.13.

28 pragma Pure[(library_unit_name)]; — See §10.2.1.

29 pragma Queuing_Policy(policy_identifier); — See §D.4.

29.1/2 pragma Relative_Deadline (relative_deadline_expression); — See §D.2.6.

30 pragma Remote_Call_Interface[(library_unit_name)]; — See §E.2.3.

31 pragma Remote_Types[(library_unit_name)]; — See §E.2.2.

32 pragma Restrictions(restriction{, restriction}); — See §13.12.

33 pragma Reviewable; — See §H.3.1.

34 pragma Shared_Passive[(library_unit_name)]; — See §E.2.1.

35 pragma Storage_Size(expression); — See §13.3.

36 pragma Suppress(identifier [, [On =>] name]); — See §11.5.

37 pragma Task_Dispatching_Policy(policy_identifier); — See §D.2.2.

37.1/2 pragma Unchecked_Union (first_subtype_local_name); — See §B.3.3.

37.2/2 pragma Unsuppress(identifier); — See §11.5.

38 pragma Volatile(local_name); — See §C.6.

39 pragma Volatile_Components(array_local_name); — See §C.6.

Wording Changes from Ada 83

39.a Pragmas List, Page, and Optimize are now officially defined in §2.8, “Pragmas”.