GNAT Reference Manual#
GNAT, The GNU Ada Development Environment
AdaCore
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover Texts being “GNAT Reference Manual”, and with no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.
- 1. About This Guide
- 2. Implementation Defined Pragmas
- 2.1. Pragma Abort_Defer
- 2.2. Pragma Abstract_State
- 2.3. Pragma Ada_83
- 2.4. Pragma Ada_95
- 2.5. Pragma Ada_05
- 2.6. Pragma Ada_2005
- 2.7. Pragma Ada_12
- 2.8. Pragma Ada_2012
- 2.9. Pragma Ada_2022
- 2.10. Pragma Aggregate_Individually_Assign
- 2.11. Pragma Allow_Integer_Address
- 2.12. Pragma Annotate
- 2.13. Pragma Assert
- 2.14. Pragma Assert_And_Cut
- 2.15. Pragma Assertion_Policy
- 2.16. Pragma Assume
- 2.17. Pragma Assume_No_Invalid_Values
- 2.18. Pragma Async_Readers
- 2.19. Pragma Async_Writers
- 2.20. Pragma Attribute_Definition
- 2.21. Pragma C_Pass_By_Copy
- 2.22. Pragma Check
- 2.23. Pragma Check_Float_Overflow
- 2.24. Pragma Check_Name
- 2.25. Pragma Check_Policy
- 2.26. Pragma Comment
- 2.27. Pragma Common_Object
- 2.28. Pragma Compile_Time_Error
- 2.29. Pragma Compile_Time_Warning
- 2.30. Pragma Complete_Representation
- 2.31. Pragma Complex_Representation
- 2.32. Pragma Component_Alignment
- 2.33. Pragma Constant_After_Elaboration
- 2.34. Pragma Contract_Cases
- 2.35. Pragma Convention_Identifier
- 2.36. Pragma CPP_Class
- 2.37. Pragma CPP_Constructor
- 2.38. Pragma CPP_Virtual
- 2.39. Pragma CPP_Vtable
- 2.40. Pragma CPU
- 2.41. Pragma Deadline_Floor
- 2.42. Pragma Default_Initial_Condition
- 2.43. Pragma Debug
- 2.44. Pragma Debug_Policy
- 2.45. Pragma Default_Scalar_Storage_Order
- 2.46. Pragma Default_Storage_Pool
- 2.47. Pragma Depends
- 2.48. Pragma Detect_Blocking
- 2.49. Pragma Disable_Atomic_Synchronization
- 2.50. Pragma Dispatching_Domain
- 2.51. Pragma Effective_Reads
- 2.52. Pragma Effective_Writes
- 2.53. Pragma Elaboration_Checks
- 2.54. Pragma Eliminate
- 2.55. Pragma Enable_Atomic_Synchronization
- 2.56. Pragma Export_Function
- 2.57. Pragma Export_Object
- 2.58. Pragma Export_Procedure
- 2.59. Pragma Export_Valued_Procedure
- 2.60. Pragma Extend_System
- 2.61. Pragma Extensions_Allowed
- 2.62. Pragma Extensions_Visible
- 2.63. Pragma External
- 2.64. Pragma External_Name_Casing
- 2.65. Pragma Fast_Math
- 2.66. Pragma Favor_Top_Level
- 2.67. Pragma Finalize_Storage_Only
- 2.68. Pragma Float_Representation
- 2.69. Pragma Ghost
- 2.70. Pragma Global
- 2.71. Pragma Ident
- 2.72. Pragma Ignore_Pragma
- 2.73. Pragma Implementation_Defined
- 2.74. Pragma Implemented
- 2.75. Pragma Implicit_Packing
- 2.76. Pragma Import_Function
- 2.77. Pragma Import_Object
- 2.78. Pragma Import_Procedure
- 2.79. Pragma Import_Valued_Procedure
- 2.80. Pragma Independent
- 2.81. Pragma Independent_Components
- 2.82. Pragma Initial_Condition
- 2.83. Pragma Initialize_Scalars
- 2.84. Pragma Initializes
- 2.85. Pragma Inline_Always
- 2.86. Pragma Inline_Generic
- 2.87. Pragma Interface
- 2.88. Pragma Interface_Name
- 2.89. Pragma Interrupt_Handler
- 2.90. Pragma Interrupt_State
- 2.91. Pragma Invariant
- 2.92. Pragma Keep_Names
- 2.93. Pragma License
- 2.94. Pragma Link_With
- 2.95. Pragma Linker_Alias
- 2.96. Pragma Linker_Constructor
- 2.97. Pragma Linker_Destructor
- 2.98. Pragma Linker_Section
- 2.99. Pragma Lock_Free
- 2.100. Pragma Loop_Invariant
- 2.101. Pragma Loop_Optimize
- 2.102. Pragma Loop_Variant
- 2.103. Pragma Machine_Attribute
- 2.104. Pragma Main
- 2.105. Pragma Main_Storage
- 2.106. Pragma Max_Queue_Length
- 2.107. Pragma No_Body
- 2.108. Pragma No_Caching
- 2.109. Pragma No_Component_Reordering
- 2.110. Pragma No_Elaboration_Code_All
- 2.111. Pragma No_Heap_Finalization
- 2.112. Pragma No_Inline
- 2.113. Pragma No_Return
- 2.114. Pragma No_Strict_Aliasing
- 2.115. Pragma No_Tagged_Streams
- 2.116. Pragma Normalize_Scalars
- 2.117. Pragma Obsolescent
- 2.118. Pragma Optimize_Alignment
- 2.119. Pragma Ordered
- 2.120. Pragma Overflow_Mode
- 2.121. Pragma Overriding_Renamings
- 2.122. Pragma Partition_Elaboration_Policy
- 2.123. Pragma Part_Of
- 2.124. Pragma Passive
- 2.125. Pragma Persistent_BSS
- 2.126. Pragma Post
- 2.127. Pragma Postcondition
- 2.128. Pragma Post_Class
- 2.129. Pragma Pre
- 2.130. Pragma Precondition
- 2.131. Pragma Predicate
- 2.132. Pragma Predicate_Failure
- 2.133. Pragma Preelaborable_Initialization
- 2.134. Pragma Prefix_Exception_Messages
- 2.135. Pragma Pre_Class
- 2.136. Pragma Priority_Specific_Dispatching
- 2.137. Pragma Profile
- 2.138. Pragma Profile_Warnings
- 2.139. Pragma Propagate_Exceptions
- 2.140. Pragma Provide_Shift_Operators
- 2.141. Pragma Psect_Object
- 2.142. Pragma Pure_Function
- 2.143. Pragma Rational
- 2.144. Pragma Ravenscar
- 2.145. Pragma Refined_Depends
- 2.146. Pragma Refined_Global
- 2.147. Pragma Refined_Post
- 2.148. Pragma Refined_State
- 2.149. Pragma Relative_Deadline
- 2.150. Pragma Remote_Access_Type
- 2.151. Pragma Rename_Pragma
- 2.152. Pragma Restricted_Run_Time
- 2.153. Pragma Restriction_Warnings
- 2.154. Pragma Reviewable
- 2.155. Pragma Secondary_Stack_Size
- 2.156. Pragma Share_Generic
- 2.157. Pragma Shared
- 2.158. Pragma Short_Circuit_And_Or
- 2.159. Pragma Short_Descriptors
- 2.160. Pragma Simple_Storage_Pool_Type
- 2.161. Pragma Source_File_Name
- 2.162. Pragma Source_File_Name_Project
- 2.163. Pragma Source_Reference
- 2.164. Pragma SPARK_Mode
- 2.165. Pragma Static_Elaboration_Desired
- 2.166. Pragma Stream_Convert
- 2.167. Pragma Style_Checks
- 2.168. Pragma Subtitle
- 2.169. Pragma Suppress
- 2.170. Pragma Suppress_All
- 2.171. Pragma Suppress_Debug_Info
- 2.172. Pragma Suppress_Exception_Locations
- 2.173. Pragma Suppress_Initialization
- 2.174. Pragma Task_Name
- 2.175. Pragma Task_Storage
- 2.176. Pragma Test_Case
- 2.177. Pragma Thread_Local_Storage
- 2.178. Pragma Time_Slice
- 2.179. Pragma Title
- 2.180. Pragma Type_Invariant
- 2.181. Pragma Type_Invariant_Class
- 2.182. Pragma Unchecked_Union
- 2.183. Pragma Unevaluated_Use_Of_Old
- 2.184. Pragma Unimplemented_Unit
- 2.185. Pragma Universal_Aliasing
- 2.186. Pragma Unmodified
- 2.187. Pragma Unreferenced
- 2.188. Pragma Unreferenced_Objects
- 2.189. Pragma Unreserve_All_Interrupts
- 2.190. Pragma Unsuppress
- 2.191. Pragma Use_VADS_Size
- 2.192. Pragma Unused
- 2.193. Pragma Validity_Checks
- 2.194. Pragma Volatile
- 2.195. Pragma Volatile_Full_Access
- 2.196. Pragma Volatile_Function
- 2.197. Pragma Warning_As_Error
- 2.198. Pragma Warnings
- 2.199. Pragma Weak_External
- 2.200. Pragma Wide_Character_Encoding
- 3. Implementation Defined Aspects
- 3.1. Aspect Abstract_State
- 3.2. Aspect Annotate
- 3.3. Aspect Async_Readers
- 3.4. Aspect Async_Writers
- 3.5. Aspect Constant_After_Elaboration
- 3.6. Aspect Contract_Cases
- 3.7. Aspect Depends
- 3.8. Aspect Default_Initial_Condition
- 3.9. Aspect Dimension
- 3.10. Aspect Dimension_System
- 3.11. Aspect Disable_Controlled
- 3.12. Aspect Effective_Reads
- 3.13. Aspect Effective_Writes
- 3.14. Aspect Extensions_Visible
- 3.15. Aspect Favor_Top_Level
- 3.16. Aspect Ghost
- 3.17. Aspect Global
- 3.18. Aspect Initial_Condition
- 3.19. Aspect Initializes
- 3.20. Aspect Inline_Always
- 3.21. Aspect Invariant
- 3.22. Aspect Invariant’Class
- 3.23. Aspect Iterable
- 3.24. Aspect Linker_Section
- 3.25. Aspect Lock_Free
- 3.26. Aspect Max_Queue_Length
- 3.27. Aspect No_Caching
- 3.28. Aspect No_Elaboration_Code_All
- 3.29. Aspect No_Inline
- 3.30. Aspect No_Tagged_Streams
- 3.31. Aspect No_Task_Parts
- 3.32. Aspect Object_Size
- 3.33. Aspect Obsolescent
- 3.34. Aspect Part_Of
- 3.35. Aspect Persistent_BSS
- 3.36. Aspect Predicate
- 3.37. Aspect Pure_Function
- 3.38. Aspect Refined_Depends
- 3.39. Aspect Refined_Global
- 3.40. Aspect Refined_Post
- 3.41. Aspect Refined_State
- 3.42. Aspect Relaxed_Initialization
- 3.43. Aspect Remote_Access_Type
- 3.44. Aspect Secondary_Stack_Size
- 3.45. Aspect Scalar_Storage_Order
- 3.46. Aspect Shared
- 3.47. Aspect Simple_Storage_Pool
- 3.48. Aspect Simple_Storage_Pool_Type
- 3.49. Aspect SPARK_Mode
- 3.50. Aspect Suppress_Debug_Info
- 3.51. Aspect Suppress_Initialization
- 3.52. Aspect Test_Case
- 3.53. Aspect Thread_Local_Storage
- 3.54. Aspect Universal_Aliasing
- 3.55. Aspect Unmodified
- 3.56. Aspect Unreferenced
- 3.57. Aspect Unreferenced_Objects
- 3.58. Aspect Value_Size
- 3.59. Aspect Volatile_Full_Access
- 3.60. Aspect Volatile_Function
- 3.61. Aspect Warnings
- 4. Implementation Defined Attributes
- 4.1. Attribute Abort_Signal
- 4.2. Attribute Address_Size
- 4.3. Attribute Asm_Input
- 4.4. Attribute Asm_Output
- 4.5. Attribute Atomic_Always_Lock_Free
- 4.6. Attribute Bit
- 4.7. Attribute Bit_Position
- 4.8. Attribute Code_Address
- 4.9. Attribute Compiler_Version
- 4.10. Attribute Constrained
- 4.11. Attribute Default_Bit_Order
- 4.12. Attribute Default_Scalar_Storage_Order
- 4.13. Attribute Deref
- 4.14. Attribute Descriptor_Size
- 4.15. Attribute Elaborated
- 4.16. Attribute Elab_Body
- 4.17. Attribute Elab_Spec
- 4.18. Attribute Elab_Subp_Body
- 4.19. Attribute Emax
- 4.20. Attribute Enabled
- 4.21. Attribute Enum_Rep
- 4.22. Attribute Enum_Val
- 4.23. Attribute Epsilon
- 4.24. Attribute Fast_Math
- 4.25. Attribute Finalization_Size
- 4.26. Attribute Fixed_Value
- 4.27. Attribute From_Any
- 4.28. Attribute Has_Access_Values
- 4.29. Attribute Has_Discriminants
- 4.30. Attribute Has_Tagged_Values
- 4.31. Attribute Img
- 4.32. Attribute Initialized
- 4.33. Attribute Integer_Value
- 4.34. Attribute Invalid_Value
- 4.35. Attribute Iterable
- 4.36. Attribute Large
- 4.37. Attribute Library_Level
- 4.38. Attribute Loop_Entry
- 4.39. Attribute Machine_Size
- 4.40. Attribute Mantissa
- 4.41. Attribute Maximum_Alignment
- 4.42. Attribute Max_Integer_Size
- 4.43. Attribute Mechanism_Code
- 4.44. Attribute Null_Parameter
- 4.45. Attribute Object_Size
- 4.46. Attribute Old
- 4.47. Attribute Passed_By_Reference
- 4.48. Attribute Pool_Address
- 4.49. Attribute Range_Length
- 4.50. Attribute Restriction_Set
- 4.51. Attribute Result
- 4.52. Attribute Safe_Emax
- 4.53. Attribute Safe_Large
- 4.54. Attribute Safe_Small
- 4.55. Attribute Scalar_Storage_Order
- 4.56. Attribute Simple_Storage_Pool
- 4.57. Attribute Small
- 4.58. Attribute Small_Denominator
- 4.59. Attribute Small_Numerator
- 4.60. Attribute Storage_Unit
- 4.61. Attribute Stub_Type
- 4.62. Attribute System_Allocator_Alignment
- 4.63. Attribute Target_Name
- 4.64. Attribute To_Address
- 4.65. Attribute To_Any
- 4.66. Attribute Type_Class
- 4.67. Attribute Type_Key
- 4.68. Attribute TypeCode
- 4.69. Attribute Unconstrained_Array
- 4.70. Attribute Universal_Literal_String
- 4.71. Attribute Unrestricted_Access
- 4.72. Attribute Update
- 4.73. Attribute Valid_Value
- 4.74. Attribute Valid_Scalars
- 4.75. Attribute VADS_Size
- 4.76. Attribute Value_Size
- 4.77. Attribute Wchar_T_Size
- 4.78. Attribute Word_Size
- 5. Standard and Implementation Defined Restrictions
- 5.1. Partition-Wide Restrictions
- 5.1.1. Immediate_Reclamation
- 5.1.2. Max_Asynchronous_Select_Nesting
- 5.1.3. Max_Entry_Queue_Length
- 5.1.4. Max_Protected_Entries
- 5.1.5. Max_Select_Alternatives
- 5.1.6. Max_Storage_At_Blocking
- 5.1.7. Max_Task_Entries
- 5.1.8. Max_Tasks
- 5.1.9. No_Abort_Statements
- 5.1.10. No_Access_Parameter_Allocators
- 5.1.11. No_Access_Subprograms
- 5.1.12. No_Allocators
- 5.1.13. No_Anonymous_Allocators
- 5.1.14. No_Asynchronous_Control
- 5.1.15. No_Calendar
- 5.1.16. No_Coextensions
- 5.1.17. No_Default_Initialization
- 5.1.18. No_Delay
- 5.1.19. No_Dependence
- 5.1.20. No_Direct_Boolean_Operators
- 5.1.21. No_Dispatch
- 5.1.22. No_Dispatching_Calls
- 5.1.23. No_Dynamic_Attachment
- 5.1.24. No_Dynamic_Priorities
- 5.1.25. No_Entry_Calls_In_Elaboration_Code
- 5.1.26. No_Enumeration_Maps
- 5.1.27. No_Exception_Handlers
- 5.1.28. No_Exception_Propagation
- 5.1.29. No_Exception_Registration
- 5.1.30. No_Exceptions
- 5.1.31. No_Finalization
- 5.1.32. No_Fixed_Point
- 5.1.33. No_Floating_Point
- 5.1.34. No_Implicit_Conditionals
- 5.1.35. No_Implicit_Dynamic_Code
- 5.1.36. No_Implicit_Heap_Allocations
- 5.1.37. No_Implicit_Protected_Object_Allocations
- 5.1.38. No_Implicit_Task_Allocations
- 5.1.39. No_Initialize_Scalars
- 5.1.40. No_IO
- 5.1.41. No_Local_Allocators
- 5.1.42. No_Local_Protected_Objects
- 5.1.43. No_Local_Tagged_Types
- 5.1.44. No_Local_Timing_Events
- 5.1.45. No_Long_Long_Integers
- 5.1.46. No_Multiple_Elaboration
- 5.1.47. No_Nested_Finalization
- 5.1.48. No_Protected_Type_Allocators
- 5.1.49. No_Protected_Types
- 5.1.50. No_Recursion
- 5.1.51. No_Reentrancy
- 5.1.52. No_Relative_Delay
- 5.1.53. No_Requeue_Statements
- 5.1.54. No_Secondary_Stack
- 5.1.55. No_Select_Statements
- 5.1.56. No_Specific_Termination_Handlers
- 5.1.57. No_Specification_of_Aspect
- 5.1.58. No_Standard_Allocators_After_Elaboration
- 5.1.59. No_Standard_Storage_Pools
- 5.1.60. No_Stream_Optimizations
- 5.1.61. No_Streams
- 5.1.62. No_Tagged_Type_Registration
- 5.1.63. No_Task_Allocators
- 5.1.64. No_Task_At_Interrupt_Priority
- 5.1.65. No_Task_Attributes_Package
- 5.1.66. No_Task_Hierarchy
- 5.1.67. No_Task_Termination
- 5.1.68. No_Tasking
- 5.1.69. No_Terminate_Alternatives
- 5.1.70. No_Unchecked_Access
- 5.1.71. No_Unchecked_Conversion
- 5.1.72. No_Unchecked_Deallocation
- 5.1.73. No_Use_Of_Entity
- 5.1.74. Pure_Barriers
- 5.1.75. Simple_Barriers
- 5.1.76. Static_Priorities
- 5.1.77. Static_Storage_Size
- 5.2. Program Unit Level Restrictions
- 5.2.1. No_Elaboration_Code
- 5.2.2. No_Dynamic_Accessibility_Checks
- 5.2.3. No_Dynamic_Sized_Objects
- 5.2.4. No_Entry_Queue
- 5.2.5. No_Implementation_Aspect_Specifications
- 5.2.6. No_Implementation_Attributes
- 5.2.7. No_Implementation_Identifiers
- 5.2.8. No_Implementation_Pragmas
- 5.2.9. No_Implementation_Restrictions
- 5.2.10. No_Implementation_Units
- 5.2.11. No_Implicit_Aliasing
- 5.2.12. No_Implicit_Loops
- 5.2.13. No_Obsolescent_Features
- 5.2.14. No_Wide_Characters
- 5.2.15. Static_Dispatch_Tables
- 5.2.16. SPARK_05
- 5.1. Partition-Wide Restrictions
- 6. Implementation Advice
- 6.1. RM 1.1.3(20): Error Detection
- 6.2. RM 1.1.3(31): Child Units
- 6.3. RM 1.1.5(12): Bounded Errors
- 6.4. RM 2.8(16): Pragmas
- 6.5. RM 2.8(17-19): Pragmas
- 6.6. RM 3.5.2(5): Alternative Character Sets
- 6.7. RM 3.5.4(28): Integer Types
- 6.8. RM 3.5.4(29): Integer Types
- 6.9. RM 3.5.5(8): Enumeration Values
- 6.10. RM 3.5.7(17): Float Types
- 6.11. RM 3.6.2(11): Multidimensional Arrays
- 6.12. RM 9.6(30-31): Duration’Small
- 6.13. RM 10.2.1(12): Consistent Representation
- 6.14. RM 11.4.1(19): Exception Information
- 6.15. RM 11.5(28): Suppression of Checks
- 6.16. RM 13.1 (21-24): Representation Clauses
- 6.17. RM 13.2(6-8): Packed Types
- 6.18. RM 13.3(14-19): Address Clauses
- 6.19. RM 13.3(29-35): Alignment Clauses
- 6.20. RM 13.3(42-43): Size Clauses
- 6.21. RM 13.3(50-56): Size Clauses
- 6.22. RM 13.3(71-73): Component Size Clauses
- 6.23. RM 13.4(9-10): Enumeration Representation Clauses
- 6.24. RM 13.5.1(17-22): Record Representation Clauses
- 6.25. RM 13.5.2(5): Storage Place Attributes
- 6.26. RM 13.5.3(7-8): Bit Ordering
- 6.27. RM 13.7(37): Address as Private
- 6.28. RM 13.7.1(16): Address Operations
- 6.29. RM 13.9(14-17): Unchecked Conversion
- 6.30. RM 13.11(23-25): Implicit Heap Usage
- 6.31. RM 13.11.2(17): Unchecked Deallocation
- 6.32. RM 13.13.2(1.6): Stream Oriented Attributes
- 6.33. RM A.1(52): Names of Predefined Numeric Types
- 6.34. RM A.3.2(49):
Ada.Characters.Handling
- 6.35. RM A.4.4(106): Bounded-Length String Handling
- 6.36. RM A.5.2(46-47): Random Number Generation
- 6.37. RM A.10.7(23):
Get_Immediate
- 6.38. RM A.18:
Containers
- 6.39. RM B.1(39-41): Pragma
Export
- 6.40. RM B.2(12-13): Package
Interfaces
- 6.41. RM B.3(63-71): Interfacing with C
- 6.42. RM B.4(95-98): Interfacing with COBOL
- 6.43. RM B.5(22-26): Interfacing with Fortran
- 6.44. RM C.1(3-5): Access to Machine Operations
- 6.45. RM C.1(10-16): Access to Machine Operations
- 6.46. RM C.3(28): Interrupt Support
- 6.47. RM C.3.1(20-21): Protected Procedure Handlers
- 6.48. RM C.3.2(25): Package
Interrupts
- 6.49. RM C.4(14): Pre-elaboration Requirements
- 6.50. RM C.5(8): Pragma
Discard_Names
- 6.51. RM C.7.2(30): The Package Task_Attributes
- 6.52. RM D.3(17): Locking Policies
- 6.53. RM D.4(16): Entry Queuing Policies
- 6.54. RM D.6(9-10): Preemptive Abort
- 6.55. RM D.7(21): Tasking Restrictions
- 6.56. RM D.8(47-49): Monotonic Time
- 6.57. RM E.5(28-29): Partition Communication Subsystem
- 6.58. RM F(7): COBOL Support
- 6.59. RM F.1(2): Decimal Radix Support
- 6.60. RM G: Numerics
- 6.61. RM G.1.1(56-58): Complex Types
- 6.62. RM G.1.2(49): Complex Elementary Functions
- 6.63. RM G.2.4(19): Accuracy Requirements
- 6.64. RM G.2.6(15): Complex Arithmetic Accuracy
- 6.65. RM H.6(15/2): Pragma Partition_Elaboration_Policy
- 7. Implementation Defined Characteristics
- 8. Intrinsic Subprograms
- 9. Representation Clauses and Pragmas
- 9.1. Alignment Clauses
- 9.2. Size Clauses
- 9.3. Storage_Size Clauses
- 9.4. Size of Variant Record Objects
- 9.5. Biased Representation
- 9.6. Value_Size and Object_Size Clauses
- 9.7. Component_Size Clauses
- 9.8. Bit_Order Clauses
- 9.9. Effect of Bit_Order on Byte Ordering
- 9.10. Pragma Pack for Arrays
- 9.11. Pragma Pack for Records
- 9.12. Record Representation Clauses
- 9.13. Handling of Records with Holes
- 9.14. Enumeration Clauses
- 9.15. Address Clauses
- 9.16. Use of Address Clauses for Memory-Mapped I/O
- 9.17. Effect of Convention on Representation
- 9.18. Conventions and Anonymous Access Types
- 9.19. Determining the Representations chosen by GNAT
- 10. Standard Library Routines
- 11. The Implementation of Standard I/O
- 11.1. Standard I/O Packages
- 11.2. FORM Strings
- 11.3. Direct_IO
- 11.4. Sequential_IO
- 11.5. Text_IO
- 11.6. Wide_Text_IO
- 11.7. Wide_Wide_Text_IO
- 11.8. Stream_IO
- 11.9. Text Translation
- 11.10. Shared Files
- 11.11. Filenames encoding
- 11.12. File content encoding
- 11.13. Open Modes
- 11.14. Operations on C Streams
- 11.15. Interfacing to C Streams
- 12. The GNAT Library
- 12.1.
Ada.Characters.Latin_9
(a-chlat9.ads
) - 12.2.
Ada.Characters.Wide_Latin_1
(a-cwila1.ads
) - 12.3.
Ada.Characters.Wide_Latin_9
(a-cwila1.ads
) - 12.4.
Ada.Characters.Wide_Wide_Latin_1
(a-chzla1.ads
) - 12.5.
Ada.Characters.Wide_Wide_Latin_9
(a-chzla9.ads
) - 12.6.
Ada.Containers.Bounded_Holders
(a-coboho.ads
) - 12.7.
Ada.Command_Line.Environment
(a-colien.ads
) - 12.8.
Ada.Command_Line.Remove
(a-colire.ads
) - 12.9.
Ada.Command_Line.Response_File
(a-clrefi.ads
) - 12.10.
Ada.Direct_IO.C_Streams
(a-diocst.ads
) - 12.11.
Ada.Exceptions.Is_Null_Occurrence
(a-einuoc.ads
) - 12.12.
Ada.Exceptions.Last_Chance_Handler
(a-elchha.ads
) - 12.13.
Ada.Exceptions.Traceback
(a-exctra.ads
) - 12.14.
Ada.Sequential_IO.C_Streams
(a-siocst.ads
) - 12.15.
Ada.Streams.Stream_IO.C_Streams
(a-ssicst.ads
) - 12.16.
Ada.Strings.Unbounded.Text_IO
(a-suteio.ads
) - 12.17.
Ada.Strings.Wide_Unbounded.Wide_Text_IO
(a-swuwti.ads
) - 12.18.
Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO
(a-szuzti.ads
) - 12.19.
Ada.Task_Initialization
(a-tasini.ads
) - 12.20.
Ada.Text_IO.C_Streams
(a-tiocst.ads
) - 12.21.
Ada.Text_IO.Reset_Standard_Files
(a-tirsfi.ads
) - 12.22.
Ada.Wide_Characters.Unicode
(a-wichun.ads
) - 12.23.
Ada.Wide_Text_IO.C_Streams
(a-wtcstr.ads
) - 12.24.
Ada.Wide_Text_IO.Reset_Standard_Files
(a-wrstfi.ads
) - 12.25.
Ada.Wide_Wide_Characters.Unicode
(a-zchuni.ads
) - 12.26.
Ada.Wide_Wide_Text_IO.C_Streams
(a-ztcstr.ads
) - 12.27.
Ada.Wide_Wide_Text_IO.Reset_Standard_Files
(a-zrstfi.ads
) - 12.28.
GNAT.Altivec
(g-altive.ads
) - 12.29.
GNAT.Altivec.Conversions
(g-altcon.ads
) - 12.30.
GNAT.Altivec.Vector_Operations
(g-alveop.ads
) - 12.31.
GNAT.Altivec.Vector_Types
(g-alvety.ads
) - 12.32.
GNAT.Altivec.Vector_Views
(g-alvevi.ads
) - 12.33.
GNAT.Array_Split
(g-arrspl.ads
) - 12.34.
GNAT.AWK
(g-awk.ads
) - 12.35.
GNAT.Binary_Search
(g-binsea.ads
) - 12.36.
GNAT.Bind_Environment
(g-binenv.ads
) - 12.37.
GNAT.Branch_Prediction
(g-brapre.ads
) - 12.38.
GNAT.Bounded_Buffers
(g-boubuf.ads
) - 12.39.
GNAT.Bounded_Mailboxes
(g-boumai.ads
) - 12.40.
GNAT.Bubble_Sort
(g-bubsor.ads
) - 12.41.
GNAT.Bubble_Sort_A
(g-busora.ads
) - 12.42.
GNAT.Bubble_Sort_G
(g-busorg.ads
) - 12.43.
GNAT.Byte_Order_Mark
(g-byorma.ads
) - 12.44.
GNAT.Byte_Swapping
(g-bytswa.ads
) - 12.45.
GNAT.Calendar
(g-calend.ads
) - 12.46.
GNAT.Calendar.Time_IO
(g-catiio.ads
) - 12.47.
GNAT.CRC32
(g-crc32.ads
) - 12.48.
GNAT.Case_Util
(g-casuti.ads
) - 12.49.
GNAT.CGI
(g-cgi.ads
) - 12.50.
GNAT.CGI.Cookie
(g-cgicoo.ads
) - 12.51.
GNAT.CGI.Debug
(g-cgideb.ads
) - 12.52.
GNAT.Command_Line
(g-comlin.ads
) - 12.53.
GNAT.Compiler_Version
(g-comver.ads
) - 12.54.
GNAT.Ctrl_C
(g-ctrl_c.ads
) - 12.55.
GNAT.Current_Exception
(g-curexc.ads
) - 12.56.
GNAT.Debug_Pools
(g-debpoo.ads
) - 12.57.
GNAT.Debug_Utilities
(g-debuti.ads
) - 12.58.
GNAT.Decode_String
(g-decstr.ads
) - 12.59.
GNAT.Decode_UTF8_String
(g-deutst.ads
) - 12.60.
GNAT.Directory_Operations
(g-dirope.ads
) - 12.61.
GNAT.Directory_Operations.Iteration
(g-diopit.ads
) - 12.62.
GNAT.Dynamic_HTables
(g-dynhta.ads
) - 12.63.
GNAT.Dynamic_Tables
(g-dyntab.ads
) - 12.64.
GNAT.Encode_String
(g-encstr.ads
) - 12.65.
GNAT.Encode_UTF8_String
(g-enutst.ads
) - 12.66.
GNAT.Exception_Actions
(g-excact.ads
) - 12.67.
GNAT.Exception_Traces
(g-exctra.ads
) - 12.68.
GNAT.Exceptions
(g-except.ads
) - 12.69.
GNAT.Expect
(g-expect.ads
) - 12.70.
GNAT.Expect.TTY
(g-exptty.ads
) - 12.71.
GNAT.Float_Control
(g-flocon.ads
) - 12.72.
GNAT.Formatted_String
(g-forstr.ads
) - 12.73.
GNAT.Generic_Fast_Math_Functions
(g-gfmafu.ads
) - 12.74.
GNAT.Heap_Sort
(g-heasor.ads
) - 12.75.
GNAT.Heap_Sort_A
(g-hesora.ads
) - 12.76.
GNAT.Heap_Sort_G
(g-hesorg.ads
) - 12.77.
GNAT.HTable
(g-htable.ads
) - 12.78.
GNAT.IO
(g-io.ads
) - 12.79.
GNAT.IO_Aux
(g-io_aux.ads
) - 12.80.
GNAT.Lock_Files
(g-locfil.ads
) - 12.81.
GNAT.MBBS_Discrete_Random
(g-mbdira.ads
) - 12.82.
GNAT.MBBS_Float_Random
(g-mbflra.ads
) - 12.83.
GNAT.MD5
(g-md5.ads
) - 12.84.
GNAT.Memory_Dump
(g-memdum.ads
) - 12.85.
GNAT.Most_Recent_Exception
(g-moreex.ads
) - 12.86.
GNAT.OS_Lib
(g-os_lib.ads
) - 12.87.
GNAT.Perfect_Hash_Generators
(g-pehage.ads
) - 12.88.
GNAT.Random_Numbers
(g-rannum.ads
) - 12.89.
GNAT.Regexp
(g-regexp.ads
) - 12.90.
GNAT.Registry
(g-regist.ads
) - 12.91.
GNAT.Regpat
(g-regpat.ads
) - 12.92.
GNAT.Rewrite_Data
(g-rewdat.ads
) - 12.93.
GNAT.Secondary_Stack_Info
(g-sestin.ads
) - 12.94.
GNAT.Semaphores
(g-semaph.ads
) - 12.95.
GNAT.Serial_Communications
(g-sercom.ads
) - 12.96.
GNAT.SHA1
(g-sha1.ads
) - 12.97.
GNAT.SHA224
(g-sha224.ads
) - 12.98.
GNAT.SHA256
(g-sha256.ads
) - 12.99.
GNAT.SHA384
(g-sha384.ads
) - 12.100.
GNAT.SHA512
(g-sha512.ads
) - 12.101.
GNAT.Signals
(g-signal.ads
) - 12.102.
GNAT.Sockets
(g-socket.ads
) - 12.103.
GNAT.Source_Info
(g-souinf.ads
) - 12.104.
GNAT.Spelling_Checker
(g-speche.ads
) - 12.105.
GNAT.Spelling_Checker_Generic
(g-spchge.ads
) - 12.106.
GNAT.Spitbol.Patterns
(g-spipat.ads
) - 12.107.
GNAT.Spitbol
(g-spitbo.ads
) - 12.108.
GNAT.Spitbol.Table_Boolean
(g-sptabo.ads
) - 12.109.
GNAT.Spitbol.Table_Integer
(g-sptain.ads
) - 12.110.
GNAT.Spitbol.Table_VString
(g-sptavs.ads
) - 12.111.
GNAT.SSE
(g-sse.ads
) - 12.112.
GNAT.SSE.Vector_Types
(g-ssvety.ads
) - 12.113.
GNAT.String_Hash
(g-strhas.ads
) - 12.114.
GNAT.Strings
(g-string.ads
) - 12.115.
GNAT.String_Split
(g-strspl.ads
) - 12.116.
GNAT.Table
(g-table.ads
) - 12.117.
GNAT.Task_Lock
(g-tasloc.ads
) - 12.118.
GNAT.Time_Stamp
(g-timsta.ads
) - 12.119.
GNAT.Threads
(g-thread.ads
) - 12.120.
GNAT.Traceback
(g-traceb.ads
) - 12.121.
GNAT.Traceback.Symbolic
(g-trasym.ads
) - 12.122.
GNAT.UTF_32
(g-table.ads
) - 12.123.
GNAT.Wide_Spelling_Checker
(g-u3spch.ads
) - 12.124.
GNAT.Wide_Spelling_Checker
(g-wispch.ads
) - 12.125.
GNAT.Wide_String_Split
(g-wistsp.ads
) - 12.126.
GNAT.Wide_Wide_Spelling_Checker
(g-zspche.ads
) - 12.127.
GNAT.Wide_Wide_String_Split
(g-zistsp.ads
) - 12.128.
Interfaces.C.Extensions
(i-cexten.ads
) - 12.129.
Interfaces.C.Streams
(i-cstrea.ads
) - 12.130.
Interfaces.Packed_Decimal
(i-pacdec.ads
) - 12.131.
Interfaces.VxWorks
(i-vxwork.ads
) - 12.132.
Interfaces.VxWorks.Int_Connection
(i-vxinco.ads
) - 12.133.
Interfaces.VxWorks.IO
(i-vxwoio.ads
) - 12.134.
System.Address_Image
(s-addima.ads
) - 12.135.
System.Assertions
(s-assert.ads
) - 12.136.
System.Atomic_Counters
(s-atocou.ads
) - 12.137.
System.Memory
(s-memory.ads
) - 12.138.
System.Multiprocessors
(s-multip.ads
) - 12.139.
System.Multiprocessors.Dispatching_Domains
(s-mudido.ads
) - 12.140.
System.Partition_Interface
(s-parint.ads
) - 12.141.
System.Pool_Global
(s-pooglo.ads
) - 12.142.
System.Pool_Local
(s-pooloc.ads
) - 12.143.
System.Restrictions
(s-restri.ads
) - 12.144.
System.Rident
(s-rident.ads
) - 12.145.
System.Strings.Stream_Ops
(s-ststop.ads
) - 12.146.
System.Unsigned_Types
(s-unstyp.ads
) - 12.147.
System.Wch_Cnv
(s-wchcnv.ads
) - 12.148.
System.Wch_Con
(s-wchcon.ads
)
- 12.1.
- 13. Interfacing to Other Languages
- 14. Specialized Needs Annexes
- 15. Implementation of Specific Ada Features
- 15.1. Machine Code Insertions
- 15.2. GNAT Implementation of Tasking
- 15.3. GNAT Implementation of Shared Passive Packages
- 15.4. Code Generation for Array Aggregates
- 15.5. The Size of Discriminated Records with Default Discriminants
- 15.6. Image Values For Nonscalar Types
- 15.7. Strict Conformance to the Ada Reference Manual
- 16. Implementation of Ada 2012 Features
- 17. Security Hardening Features
- 18. Obsolescent Features
- 19. Compatibility and Porting Guide
- GNU Free Documentation License
- Preamble
- 1. APPLICABILITY AND DEFINITIONS
- 2. VERBATIM COPYING
- 3. COPYING IN QUANTITY
- 4. MODIFICATIONS
- 5. COMBINING DOCUMENTS
- 6. COLLECTIONS OF DOCUMENTS
- 7. AGGREGATION WITH INDEPENDENT WORKS
- 8. TRANSLATION
- 9. TERMINATION
- 10. FUTURE REVISIONS OF THIS LICENSE
- 11. RELICENSING
- ADDENDUM: How to use this License for your documents