Implementation Defined Pragmas (GNAT Reference Manual) (original) (raw)
Next: Implementation Defined Aspects, Previous: About This Guide, Up: GNAT Reference Manual [Contents][Index]
Ada defines a set of pragmas that can be used to supply additional information to the compiler. These language defined pragmas are implemented in GNAT and work as described in the Ada Reference Manual.
In addition, Ada allows implementations to define additional pragmas whose meaning is defined by the implementation. GNAT provides a number of these implementation-defined pragmas, which can be used to extend and enhance the functionality of the compiler. This section of the GNAT Reference Manual describes these additional pragmas.
Note that any program using these pragmas might not be portable to other compilers (although GNAT implements this set of pragmas on all platforms). Therefore if portability to other compilers is an important consideration, the use of these pragmas should be minimized.
- Pragma Abort_Defer
- Pragma Abstract_State
- Pragma Ada_83
- Pragma Ada_95
- Pragma Ada_05
- Pragma Ada_2005
- Pragma Ada_12
- Pragma Ada_2012
- Pragma Ada_2022
- Pragma Aggregate_Individually_Assign
- Pragma Allow_Integer_Address
- Pragma Always_Terminates
- Pragma Annotate
- Pragma Assert
- Pragma Assert_And_Cut
- Pragma Assertion_Policy
- Pragma Assume
- Pragma Assume_No_Invalid_Values
- Pragma Async_Readers
- Pragma Async_Writers
- Pragma Attribute_Definition
- Pragma C_Pass_By_Copy
- Pragma Check
- Pragma Check_Float_Overflow
- Pragma Check_Name
- Pragma Check_Policy
- Pragma Comment
- Pragma Common_Object
- Pragma Compile_Time_Error
- Pragma Compile_Time_Warning
- Pragma Complete_Representation
- Pragma Complex_Representation
- Pragma Component_Alignment
- Pragma Constant_After_Elaboration
- Pragma Contract_Cases
- Pragma Convention_Identifier
- Pragma CPP_Class
- Pragma CPP_Constructor
- Pragma CPP_Virtual
- Pragma CPP_Vtable
- Pragma CPU
- Pragma Deadline_Floor
- Pragma Debug
- Pragma Debug_Policy
- Pragma Default_Initial_Condition
- Pragma Default_Scalar_Storage_Order
- Pragma Default_Storage_Pool
- Pragma Depends
- Pragma Detect_Blocking
- Pragma Disable_Atomic_Synchronization
- Pragma Dispatching_Domain
- Pragma Effective_Reads
- Pragma Effective_Writes
- Pragma Elaboration_Checks
- Pragma Eliminate
- Pragma Enable_Atomic_Synchronization
- Pragma Exceptional_Cases
- Pragma Exit_Cases
- Pragma Export_Function
- Pragma Export_Object
- Pragma Export_Procedure
- Pragma Export_Valued_Procedure
- Pragma Extend_System
- Pragma Extensions_Allowed
- Pragma Extensions_Visible
- Pragma External
- Pragma External_Name_Casing
- Pragma Fast_Math
- Pragma Favor_Top_Level
- Pragma Finalize_Storage_Only
- Pragma Float_Representation
- Pragma Ghost
- Pragma Global
- Pragma Ident
- Pragma Ignore_Pragma
- Pragma Implementation_Defined
- Pragma Implemented
- Pragma Implicit_Packing
- Pragma Import_Function
- Pragma Import_Object
- Pragma Import_Procedure
- Pragma Import_Valued_Procedure
- Pragma Independent
- Pragma Independent_Components
- Pragma Initial_Condition
- Pragma Initialize_Scalars
- Pragma Initializes
- Pragma Inline_Always
- Pragma Inline_Generic
- Pragma Interface
- Pragma Interface_Name
- Pragma Interrupt_Handler
- Pragma Interrupt_State
- Pragma Interrupts_System_By_Default
- Pragma Invariant
- Pragma Keep_Names
- Pragma License
- Pragma Link_With
- Pragma Linker_Alias
- Pragma Linker_Constructor
- Pragma Linker_Destructor
- Pragma Linker_Section
- Pragma Lock_Free
- Pragma Loop_Invariant
- Pragma Loop_Optimize
- Pragma Loop_Variant
- Pragma Machine_Attribute
- Pragma Main
- Pragma Main_Storage
- Pragma Max_Queue_Length
- Pragma No_Body
- Pragma No_Caching
- Pragma No_Component_Reordering
- Pragma No_Elaboration_Code_All
- Pragma No_Heap_Finalization
- Pragma No_Inline
- Pragma No_Raise
- Pragma No_Return
- Pragma No_Strict_Aliasing
- Pragma No_Tagged_Streams
- Pragma Normalize_Scalars
- Pragma Obsolescent
- Pragma Optimize_Alignment
- Pragma Ordered
- Pragma Overflow_Mode
- Pragma Overriding_Renamings
- Pragma Part_Of
- Pragma Partition_Elaboration_Policy
- Pragma Passive
- Pragma Persistent_BSS
- Pragma Post
- Pragma Postcondition
- Pragma Post_Class
- Pragma Pre
- Pragma Precondition
- Pragma Predicate
- Pragma Predicate_Failure
- Pragma Preelaborable_Initialization
- Pragma Prefix_Exception_Messages
- Pragma Pre_Class
- Pragma Priority_Specific_Dispatching
- Pragma Profile
- Pragma Profile_Warnings
- Pragma Propagate_Exceptions
- Pragma Provide_Shift_Operators
- Pragma Psect_Object
- Pragma Pure_Function
- Pragma Rational
- Pragma Ravenscar
- Pragma Refined_Depends
- Pragma Refined_Global
- Pragma Refined_Post
- Pragma Refined_State
- Pragma Relative_Deadline
- Pragma Remote_Access_Type
- Pragma Rename_Pragma
- Pragma Restricted_Run_Time
- Pragma Restriction_Warnings
- Pragma Reviewable
- Pragma Secondary_Stack_Size
- Pragma Share_Generic
- Pragma Shared
- Pragma Short_Circuit_And_Or
- Pragma Short_Descriptors
- Pragma Side_Effects
- Pragma Simple_Storage_Pool_Type
- Pragma Source_File_Name
- Pragma Source_File_Name_Project
- Pragma Source_Reference
- Pragma SPARK_Mode
- Pragma Static_Elaboration_Desired
- Pragma Stream_Convert
- Pragma Style_Checks
- Pragma Subprogram_Variant
- Pragma Subtitle
- Pragma Suppress
- Pragma Suppress_All
- Pragma Suppress_Debug_Info
- Pragma Suppress_Exception_Locations
- Pragma Suppress_Initialization
- Pragma Task_Name
- Pragma Task_Storage
- Pragma Test_Case
- Pragma Thread_Local_Storage
- Pragma Time_Slice
- Pragma Title
- Pragma Type_Invariant
- Pragma Type_Invariant_Class
- Pragma Unchecked_Union
- Pragma Unevaluated_Use_Of_Old
- Pragma User_Aspect_Definition
- Pragma Unimplemented_Unit
- Pragma Universal_Aliasing
- Pragma Unmodified
- Pragma Unreferenced
- Pragma Unreferenced_Objects
- Pragma Unreserve_All_Interrupts
- Pragma Unsuppress
- Pragma Unused
- Pragma Use_VADS_Size
- Pragma Validity_Checks
- Pragma Volatile
- Pragma Volatile_Full_Access
- Pragma Volatile_Function
- Pragma Warning_As_Error
- Pragma Warnings
- Pragma Weak_External
- Pragma Wide_Character_Encoding