# Ada Programming/Pragmas


## Description

Pragmas control the compiler, i.e.
they are compiler directives. They
have the standard form of

` `*`Name`*` (`*`Parameter_List`*`);`

where the parameter list is optional.

## List of language defined pragmas

Some pragmas are specially marked:

Ada 2005 : This is a new Ada 2005 pragma.\
Ada 2012 : This is a new Ada 2012 pragma.\
Obsolescent : This is a deprecated pragma and it should not be used in new code.

### A -- H

-   All_Calls_Remote
-   Assert
    `<small>`{=html}(Ada 2005)`</small>`{=html}
-   Assertion_Policy
    `<small>`{=html}(Ada 2005)`</small>`{=html}
-   Asynchronous
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}
-   Atomic
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}
-   Atomic_Components
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}
-   Attach_Handler
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}
-   Controlled
    `<small>`{=html}(Removed from Ada 2012)`</small>`{=html}
-   Convention
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}
-   CPU
    `<small>`{=html}(Ada 2012)`</small>`{=html}
-   Default_Storage_Pool
    `<small>`{=html}(Ada 2012)`</small>`{=html}
-   Detect_Blocking
    `<small>`{=html}(Ada 2005)`</small>`{=html}
-   Discard_Names
-   Dispatching_Domain
    `<small>`{=html}(Ada 2012)`</small>`{=html}
-   Elaborate
-   Elaborate_All
-   Elaborate_Body
-   Export
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}

### I -- O

-   Import
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}
-   Independent
    `<small>`{=html}(Ada 2012)`</small>`{=html}
-   Independent_Component
    `<small>`{=html}(Ada 2012)`</small>`{=html}
-   Inline
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}
-   Inspection_Point
-   Interface
    `<small>`{=html}(Obsolescent)`</small>`{=html}
-   Interrupt_Handler
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}
-   Interrupt_Priority
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}
-   Linker_Options
-   List
-   Locking_Policy
-   Memory_Size
    `<small>`{=html}(Obsolescent)`</small>`{=html}
-   No_Return
    `<small>`{=html}(Ada 2005)`</small>`{=html}
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}
-   Normalize_Scalars
-   Optimize

### P -- R

-   Pack
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}
-   Page
-   Partition_Elaboration_Policy
    `<small>`{=html}(Ada 2005)`</small>`{=html}
-   Preelaborable_Initialization
    `<small>`{=html}(Ada 2005)`</small>`{=html}
-   Preelaborate
-   Priority
    `<small>`{=html}(Obsolescent since Ada 2012)`</small>`{=html}
-   Priority_Specific_Dispatching
    `<small>`{=html}(Ada 2005)`</small>`{=html}
-   Profile
    `<small>`{=html}(Ada 2005)`</small>`{=html}
-   Pure
-   Queueing_Policy
-   Relative_Deadline
    `<small>`{=html}(Ada 2005)`</small>`{=html}
-   Remote_Call_Interface
-   Remote_Types
-   Restrictions
-   Reviewable

### S -- Z

-   Shared
    `<small>`{=html}(Obsolescent)`</small>`{=html}
-   Shared_Passive
-   Storage_Size
-   Storage_Unit
    `<small>`{=html}(Obsolescent)`</small>`{=html}
-   Suppress
-   System_Name
    `<small>`{=html}(Obsolescent)`</small>`{=html}
-   Task_Dispatching_Policy
-   Unchecked_Union
    `<small>`{=html}(Ada 2005)`</small>`{=html}
-   Unsuppress
    `<small>`{=html}(Ada 2005)`</small>`{=html}
-   Volatile
-   Volatile_Components

## List of implementation defined pragmas

The following pragmas are not available in all Ada compilers, only in
those that had implemented them.

Currently, there are only listed the implementation-defined pragmas of a
few compilers. You can help Wikibooks
adding
specific aspects of other compilers:

GNAT : Implementation defined pragma of the GNAT compiler from AdaCore and FSF.\
HP Ada : Implementation defined pragma of the HP Ada compiler (formerly known as \"DEC Ada\").\
ICC : Implementation-defined pragma[^1] of the Irvine ICC compiler.\
PowerAda : Implementation defined pragma of OC Systems\' PowerAda.\
SPARCompiler : Implementation defined pragma of Sun\'s SPARCompiler Ada.2

### A -- C

-   Abort_Defer
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Ada_83
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Ada_95
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Ada_05
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Ada_2005
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Ada_12
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Ada_2012
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Annotate
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Assume_No_Invalid_Values
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Ast_Entry
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Bit_Pack
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Built_In
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Byte_Pack
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   C_Pass_By_Copy
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Call_Mechanism
    `<small>`{=html}(ICC)`</small>`{=html}
-   Canonical_Streams
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Check
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Check_Name
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Check_Policy
    `<small>`{=html}(GNAT)`</small>`{=html}
-   CM_Info
    `<small>`{=html}(PowerAda)`</small>`{=html}
-   Comment
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Common_Object
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Compatible_Calls
    `<small>`{=html}(ICC)`</small>`{=html}
-   Compile_Time_Error
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Compile_Time_Warning
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Complete_Representation
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Complex_Representation
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Component_Alignment
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Compress
    `<small>`{=html}(ICC)`</small>`{=html}
-   Constrain_Private
    `<small>`{=html}(ICC)`</small>`{=html}
-   Convention_Identifier
    `<small>`{=html}(GNAT)`</small>`{=html}
-   CPP_Class
    `<small>`{=html}(GNAT)`</small>`{=html}
-   CPP_Constructor
    `<small>`{=html}(GNAT)`</small>`{=html}
-   CPP_Virtual
    `<small>`{=html}(GNAT)`</small>`{=html}
-   CPP_Vtable
    `<small>`{=html}(GNAT)`</small>`{=html}

### D -- H

-   Data_Mechanism
    `<small>`{=html}(ICC)`</small>`{=html}
-   Debug
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Debug_Policy
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Delete_Subprogram_Entry
    `<small>`{=html}(ICC)`</small>`{=html}
-   Elaboration_Checks
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Eliminate
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Error
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Export_Exception
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Export_Function
    `<small>`{=html}(GNAT, HP Ada, SPARCompiler)`</small>`{=html}
-   Export_Mechanism
    `<small>`{=html}(ICC)`</small>`{=html}
-   Export_Object
    `<small>`{=html}(GNAT, HP Ada, SPARCompiler)`</small>`{=html}
-   Export_Procedure
    `<small>`{=html}(GNAT, HP Ada, SPARCompiler)`</small>`{=html}
-   Export_Value
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Export_Valued_Procedure
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Extend_System
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Extensions_Allowed
    `<small>`{=html}(GNAT)`</small>`{=html}
-   External
    `<small>`{=html}(GNAT, SPARCompiler)`</small>`{=html}
-   External_Name
    `<small>`{=html}(ICC, SPARCompiler)`</small>`{=html}
-   External_Name_Casing
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Fast_Math
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Favor_Top_Level
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Finalize_Storage_Only
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Float_Representation
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Foreign
    `<small>`{=html}(ICC)`</small>`{=html}
-   Generic_Mechanism
    `<small>`{=html}(ICC)`</small>`{=html}
-   Generic_Policy
    `<small>`{=html}(SPARCompiler)`</small>`{=html}

### I -- L

-   i960_Intrinsic
    `<small>`{=html}(ICC)`</small>`{=html}
-   Ident
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Images
    `<small>`{=html}(PowerAda)`</small>`{=html}
-   Implemented,
    previously named \'Implemented_By_Entry\'
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Implicit_Code
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Implicit_Packing
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Import_Exception
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Import_Function
    `<small>`{=html}(GNAT, HP Ada, SPARCompiler)`</small>`{=html}
-   Import_Mechanism
    `<small>`{=html}(ICC)`</small>`{=html}
-   Import_Object
    `<small>`{=html}(GNAT, HP Ada, SPARCompiler)`</small>`{=html}
-   Import_Procedure
    `<small>`{=html}(GNAT, HP Ada, SPARCompiler)`</small>`{=html}
-   Import_Valued_Procedure
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Include
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Initialize
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Initialize_Scalars
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Inline_Always
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Inline_Generic
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Inline_Only
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Instance_Policy
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Interface_Constant
    `<small>`{=html}(ICC)`</small>`{=html}
-   Interface_Information
    `<small>`{=html}(PowerAda)`</small>`{=html}
-   Interface_Mechanism
    `<small>`{=html}(ICC)`</small>`{=html}
-   Interface_Name
    `<small>`{=html}(GNAT, HP Ada, ICC, SPARCompiler)`</small>`{=html}
-   Interrupt_State
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Invariant
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Keep_Names
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Label
    `<small>`{=html}(ICC)`</small>`{=html}
-   License
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Link_With
    `<small>`{=html}(GNAT, ICC, SPARCompiler)`</small>`{=html}
-   Linker_Alias
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Linker_Constructor
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Linker_Destructor
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Linker_Section
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Long_Float
    `<small>`{=html}(GNAT: OpenVMS, HP Ada)`</small>`{=html}

### M -- P

-   Machine_Attribute
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Main
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Main_Storage
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   No_Body
    `<small>`{=html}(GNAT)`</small>`{=html}
-   No_Image
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   No_Strict_Aliasing
    `<small>`{=html}(GNAT)`</small>`{=html}
-   No_Suppress
    `<small>`{=html}(PowerAda)`</small>`{=html}
-   No_Reorder
    `<small>`{=html}(ICC)`</small>`{=html}
-   No_Zero
    `<small>`{=html}(ICC)`</small>`{=html}
-   Noinline
    `<small>`{=html}(ICC)`</small>`{=html}
-   Non_Reentrant
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Not_Elaborated
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Not_Null
    `<small>`{=html}(ICC)`</small>`{=html}
-   Obsolescent
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Optimize_Alignment
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Optimize_Code
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Optimize_Options
    `<small>`{=html}(ICC)`</small>`{=html}
-   Ordered
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Parameter_Mechanism
    `<small>`{=html}(ICC)`</small>`{=html}
-   Passive
    `<small>`{=html}(GNAT, HP Ada, SPARCompiler)`</small>`{=html}
-   Persistent_BSS
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Physical_Address
    `<small>`{=html}(ICC)`</small>`{=html}
-   Polling
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Postcondition
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Precondition
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Preserve_Layout
    `<small>`{=html}(PowerAda)`</small>`{=html}
-   Profile_Warnings
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Propagate_Exceptions
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Protect_Registers
    `<small>`{=html}(ICC)`</small>`{=html}
-   Protected_Call
    `<small>`{=html}(ICC)`</small>`{=html}
-   Protected_Return
    `<small>`{=html}(ICC)`</small>`{=html}
-   Psect_Object
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Pure_Function
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Put
    `<small>`{=html}(ICC)`</small>`{=html}
-   Put_Line
    `<small>`{=html}(ICC)`</small>`{=html}

### R -- S

-   Reserve_Registers
    `<small>`{=html}(ICC)`</small>`{=html}
-   Restriction_Warnings
    `<small>`{=html}(GNAT)`</small>`{=html}
-   RTS_Interface
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   SCCS_ID
    `<small>`{=html}(PowerAda)`</small>`{=html}
-   Share_Body
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Share_Code
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Share_Generic
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Shareable
    `<small>`{=html}(ICC)`</small>`{=html}
-   Short_Circuit_And_Or
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Short_Descriptors
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Simple_Storage_Pool_Type
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Simple_Task
    `<small>`{=html}(ICC)`</small>`{=html}
-   Source_File_Name
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Source_File_Name_Project
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Source_Reference
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Stack_Size
    `<small>`{=html}(ICC)`</small>`{=html}
-   Static_Elaboration
    `<small>`{=html}(ICC)`</small>`{=html}
-   Static_Elaboration_Desired
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Stream_Convert
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Style_Checks
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Subtitle
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Suppress_All
    `<small>`{=html}(GNAT, HP Ada, PowerAda,
    SPARCompiler)`</small>`{=html}
-   Suppress_Elaboration_Checks
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Suppress_Exception_Locations
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Suppress_Initialization
    `<small>`{=html}(GNAT)`</small>`{=html}
-   System_Table
    `<small>`{=html}(ICC)`</small>`{=html}

### T -- Z

-   Task_Attributes
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Task_Info
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Task_Name
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Task_Storage
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Test_Case
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Thread_Body
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Thread_Local_Storage
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Time_Slice
    `<small>`{=html}(GNAT, HP Ada, ICC)`</small>`{=html}
-   Time_Slice_Attributes
    `<small>`{=html}(ICC)`</small>`{=html}
-   Title
    `<small>`{=html}(GNAT, HP Ada)`</small>`{=html}
-   Unimplemented_Unit
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Universal_Aliasing
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Universal_Data
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Unmodified
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Unreferenced
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Unreferenced_Objects
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Unreserve_All_Interrupts
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Unsigned_Literal
    `<small>`{=html}(ICC)`</small>`{=html}
-   Use_VADS_Size
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Validity_Checks
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Warning
    `<small>`{=html}(SPARCompiler)`</small>`{=html}
-   Warnings
    `<small>`{=html}(GNAT, SPARCompiler)`</small>`{=html}
-   Weak_External
    `<small>`{=html}(GNAT)`</small>`{=html}
-   Wide_Character_Encoding
    `<small>`{=html}(GNAT)`</small>`{=html}

## See also

### Wikibook

-   Ada Programming
-   Ada Programming/Aspects
-   Ada Programming/Attributes
-   Ada Programming/Keywords

### Ada Reference Manual

#### Ada 83

-   
-   
#### Ada 95

-   
-   
#### Ada 2005

-   
-   
#### Ada 2012

-   
-   
## References

```{=html}
<references/>
```
Programming}}\|Pragmas Ada
Programming}}/Ada 2005 feature\|Pragmas


es:Programación en
Ada/Pragmas

[^1]: \"2.2 ICC-Defined Pragmas\", *ICC Ada Implementation Reference ---
    ICC Ada Version 8.2.5 for i960MC Targets*, document version
    2.11.4.1
