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

 * Admission_Policy (Ada 2022)
 * All_Calls_Remote
 * Assert (Ada 2005)
 * Assertion_Policy (Ada 2005)
 * Asynchronous (Obsolescent since Ada 2012)
 * Atomic (Obsolescent since Ada 2012)
 * Atomic_Components (Obsolescent since Ada 2012)
 * Attach_Handler (Obsolescent since Ada 2012)
 * Conflict_Check_Policy (Ada 2022)
 * Controlled (Removed from Ada 2012)
 * Convention (Obsolescent since Ada 2012)
 * CPU (Ada 2012)
 * Default_Storage_Pool (Ada 2012)
 * Detect_Blocking (Ada 2005)
 * Discard_Names
 * Dispatching_Domain (Ada 2012)
 * Elaborate
 * Elaborate_All
 * Elaborate_Body
 * Export (Obsolescent since Ada 2012)
 * Generate_Deadlines (Ada 2022)

I – O

 * Import (Obsolescent since Ada 2012)
 * Independent (Ada 2012)
 * Independent_Component (Ada 2012)
 * Inline (Obsolescent since Ada 2012)
 * Inspection_Point
 * Interface (Obsolescent)
 * Interrupt_Handler (Obsolescent since Ada 2012)
 * Interrupt_Priority (Obsolescent since Ada 2012)
 * Linker_Options
 * List
 * Locking_Policy
 * Memory_Size (Obsolescent)
 * No_Return (Ada 2005) (Obsolescent since Ada 2012)
 * Normalize_Scalars
 * Optimize

P – R

 * Pack (Obsolescent since Ada 2012)
 * Page
 * Partition_Elaboration_Policy (Ada 2005)
 * Preelaborable_Initialization (Ada 2005)
 * Preelaborate
 * Priority (Obsolescent since Ada 2012)
 * Priority_Specific_Dispatching (Ada 2005)
 * Profile (Ada 2005)
 * Pure
 * Queueing_Policy
 * Relative_Deadline (Ada 2005)
 * Remote_Call_Interface
 * Remote_Types
 * Restrictions
 * Reviewable

S – Z

 * Shared (Obsolescent)
 * Shared_Passive
 * Storage_Size
 * Storage_Unit (Obsolescent)
 * Suppress
 * System_Name (Obsolescent)
 * Task_Dispatching_Policy
 * Unchecked_Union (Ada 2005)
 * Unsuppress (Ada 2005)
 * 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 of the Irvine ICC compiler.
 * PowerAda : Implementation defined pragma of OC Systems' PowerAda.
 * SPARCompiler : Implementation defined pragma of Sun's SPARCompiler Ada.

A – C

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

D – H

 * Data_Mechanism (ICC)
 * Debug (GNAT)
 * Debug_Policy (GNAT)
 * Delete_Subprogram_Entry (ICC)
 * Elaboration_Checks (GNAT)
 * Eliminate (GNAT)
 * Error (SPARCompiler)
 * Export_Exception (GNAT, HP Ada)
 * Export_Function (GNAT, HP Ada, SPARCompiler)
 * Export_Mechanism (ICC)
 * Export_Object (GNAT, HP Ada, SPARCompiler)
 * Export_Procedure (GNAT, HP Ada, SPARCompiler)
 * Export_Value (GNAT)
 * Export_Valued_Procedure (GNAT, HP Ada)
 * Extend_System (GNAT)
 * Extensions_Allowed (GNAT)
 * External (GNAT, SPARCompiler)
 * External_Name (ICC, SPARCompiler)
 * External_Name_Casing (GNAT)
 * Fast_Math (GNAT)
 * Favor_Top_Level (GNAT)
 * Finalize_Storage_Only (GNAT)
 * Float_Representation (GNAT, HP Ada)
 * Foreign (ICC)
 * Generic_Mechanism (ICC)
 * Generic_Policy (SPARCompiler)

I – L

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

M – P

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

R – S

 * Reserve_Registers (ICC)
 * Restriction_Warnings (GNAT)
 * RTS_Interface (SPARCompiler)
 * SCCS_ID (PowerAda)
 * Share_Body (SPARCompiler)
 * Share_Code (SPARCompiler)
 * Share_Generic (GNAT, HP Ada)
 * Shareable (ICC)
 * Short_Circuit_And_Or (GNAT)
 * Short_Descriptors (GNAT)
 * Simple_Storage_Pool_Type (GNAT)
 * Simple_Task (ICC)
 * Source_File_Name (GNAT)
 * Source_File_Name_Project (GNAT)
 * Source_Reference (GNAT)
 * Stack_Size (ICC)
 * Static_Elaboration (ICC)
 * Static_Elaboration_Desired (GNAT)
 * Stream_Convert (GNAT)
 * Style_Checks (GNAT)
 * Subtitle (GNAT)
 * Suppress_All (GNAT, HP Ada, PowerAda, SPARCompiler)
 * Suppress_Elaboration_Checks (SPARCompiler)
 * Suppress_Exception_Locations (GNAT)
 * Suppress_Initialization (GNAT)
 * System_Table (ICC)

T – Z

 * Task_Attributes (SPARCompiler)
 * Task_Info (GNAT)
 * Task_Name (GNAT)
 * Task_Storage (GNAT, HP Ada)
 * Test_Case (GNAT)
 * Thread_Body (GNAT)
 * Thread_Local_Storage (GNAT)
 * Time_Slice (GNAT, HP Ada, ICC)
 * Time_Slice_Attributes (ICC)
 * Title (GNAT, HP Ada)
 * Unimplemented_Unit (GNAT)
 * Universal_Aliasing (GNAT)
 * Universal_Data (GNAT)
 * Unmodified (GNAT)
 * Unreferenced (GNAT)
 * Unreferenced_Objects (GNAT)
 * Unreserve_All_Interrupts (GNAT)
 * Unsigned_Literal (ICC)
 * Use_VADS_Size (GNAT)
 * Validity_Checks (GNAT)
 * Warning (SPARCompiler)
 * Warnings (GNAT, SPARCompiler)
 * Weak_External (GNAT)
 * Wide_Character_Encoding (GNAT)

Wikibook

 * Ada Programming
 * Ada Programming/Aspects
 * Ada Programming/Attributes
 * Ada Programming/Keywords