[Top] [Contents] [Index] [ ? ]

GNAT Reference Manual

GNAT Reference Manual

GNAT, The GNU Ada Compiler
GNAT GPL Edition, Version 2012
Document revision level 247883
Date: 2012/04/30

AdaCore

Copyright (C) 1995-2011, Free Software Foundation

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being "GNU Free Documentation License", 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".

About This Guide  
1. Implementation Defined Pragmas  
2. Implementation Defined Attributes  
3. Standard and Implementation Defined Restrictions  
4. Implementation Advice  
5. Implementation Defined Characteristics  
6. Intrinsic Subprograms  
7. Representation Clauses and Pragmas  
8. Standard Library Routines  
9. The Implementation of Standard I/O  
10. The GNAT Library  
11. Interfacing to Other Languages  
12. Specialized Needs Annexes  
13. Implementation of Specific Ada Features  
14. Implementation of Ada 2012 Features  
15. Obsolescent Features  
A. GNU Free Documentation License  
Index  

 -- The Detailed Node Listing --- About This Guide
What This Reference Manual Contains  
Related Information  

Implementation Defined Pragmas
Pragma Abort_Defer  
Pragma Ada_83  
Pragma Ada_95  
Pragma Ada_05  
Pragma Ada_2005  
Pragma Ada_12  
Pragma Ada_2012  
Pragma Annotate  
Pragma Assert  
Pragma Assertion_Policy  
Pragma Assume_No_Invalid_Values  
Pragma Ast_Entry  
Pragma C_Pass_By_Copy  
Pragma Check  
Pragma Check_Name  
Pragma Check_Policy  
Pragma Comment  
Pragma Common_Object  
Pragma Compile_Time_Error  
Pragma Compile_Time_Warning  
Pragma Compiler_Unit  
Pragma Complete_Representation  
Pragma Complex_Representation  
Pragma Component_Alignment  
Pragma Contract_Case  
Pragma Convention_Identifier  
Pragma CPP_Class  
Pragma CPP_Constructor  
Pragma CPP_Virtual  
Pragma CPP_Vtable  
Pragma Debug  
Pragma Debug_Policy  
Pragma Detect_Blocking  
Pragma Elaboration_Checks  
Pragma Eliminate  
Pragma Export_Exception  
Pragma Export_Function  
Pragma Export_Object  
Pragma Export_Procedure  
Pragma Export_Value  
Pragma Export_Valued_Procedure  
Pragma Extend_System  
Pragma Extensions_Allowed  
Pragma External  
Pragma External_Name_Casing  
Pragma Fast_Math  
Pragma Favor_Top_Level  
Pragma Finalize_Storage_Only  
Pragma Float_Representation  
Pragma Ident  
Pragma Implemented  
Pragma Implicit_Packing  
Pragma Import_Exception  
Pragma Import_Function  
Pragma Import_Object  
Pragma Import_Procedure  
Pragma Import_Valued_Procedure  
Pragma Initialize_Scalars  
Pragma Inline_Always  
Pragma Inline_Generic  
Pragma Interface  
Pragma Interface_Name  
Pragma Interrupt_Handler  
Pragma Interrupt_State  
Pragma Invariant  
Pragma Keep_Names  
Pragma License  
Pragma Link_With  
Pragma Linker_Alias  
Pragma Linker_Constructor  
Pragma Linker_Destructor  
Pragma Linker_Section  
Pragma Long_Float  
Pragma Machine_Attribute  
Pragma Main  
Pragma Main_Storage  
Pragma No_Body  
Pragma No_Return  
Pragma No_Strict_Aliasing  
Pragma Normalize_Scalars  
Pragma Obsolescent  
Pragma Optimize_Alignment  
Pragma Ordered  
Pragma Passive  
Pragma Persistent_BSS  
Pragma Polling  
Pragma Postcondition  
Pragma Precondition  
Pragma Profile (Ravenscar)  
Pragma Profile (Restricted)  
Pragma Psect_Object  
Pragma Pure_Function  
Pragma Remote_Access_Type  
Pragma Restriction_Warnings  
Pragma Shared  
Pragma Short_Circuit_And_Or  
Pragma Short_Descriptors  
Pragma Simple_Storage_Pool_Type  
Pragma Source_File_Name  
Pragma Source_File_Name_Project  
Pragma Source_Reference  
Pragma Static_Elaboration_Desired  
Pragma Stream_Convert  
Pragma Style_Checks  
Pragma Subtitle  
Pragma Suppress  
Pragma Suppress_All  
Pragma Suppress_Exception_Locations  
Pragma Suppress_Initialization  
Pragma Task_Info  
Pragma Task_Name  
Pragma Task_Storage  
Pragma Test_Case  
Pragma Thread_Local_Storage  
Pragma Time_Slice  
Pragma Title  
Pragma Unchecked_Union  
Pragma Unimplemented_Unit  
Pragma Universal_Aliasing  
Pragma Universal_Data  
Pragma Unmodified  
Pragma Unreferenced  
Pragma Unreferenced_Objects  
Pragma Unreserve_All_Interrupts  
Pragma Unsuppress  
Pragma Use_VADS_Size  
Pragma Validity_Checks  
Pragma Volatile  
Pragma Warnings  
Pragma Weak_External  
Pragma Wide_Character_Encoding  

Implementation Defined Attributes
Abort_Signal  
Address_Size  
Asm_Input  
Asm_Output  
AST_Entry  
Bit  
Bit_Position  
Compiler_Version  
Code_Address  
Default_Bit_Order  
Descriptor_Size  
Elaborated  
Elab_Body  
Elab_Spec  
Elab_Subp_Body  
Emax  
Enabled  
Enum_Rep  
Enum_Val  
Epsilon  
Fixed_Value  
Has_Access_Values  
Has_Discriminants  
Img  
Integer_Value  
Invalid_Value  
Large  
Machine_Size  
Mantissa  
Max_Interrupt_Priority  
Max_Priority  
Maximum_Alignment  
Mechanism_Code  
Null_Parameter  
Object_Size  
Old  
Passed_By_Reference  
Pool_Address  
Range_Length  
Result  
Safe_Emax  
Safe_Large  
Scalar_Storage_Order  
Simple_Storage_Pool  
Small  
Storage_Unit  
Stub_Type  
System_Allocator_Alignment  
Target_Name  
Tick  
To_Address  
Type_Class  
UET_Address  
Unconstrained_Array  
Universal_Literal_String  
Unrestricted_Access  
Valid_Scalars  
VADS_Size  
Value_Size  
Wchar_T_Size  
Word_Size  

Standard and Implementation Defined Restrictions
3.1 Partition-Wide Restrictions  
3.2 Program Unit Level Restrictions  

Partition-Wide Restrictions
Immediate_Reclamation  
Max_Asynchronous_Select_Nesting  
Max_Entry_Queue_Length  
Max_Protected_Entries  
Max_Select_Alternatives  
Max_Storage_At_Blocking  
Max_Task_Entries  
Max_Tasks  
No_Abort_Statements  
No_Access_Parameter_Allocators  
No_Access_Subprograms  
No_Allocators  
No_Anonymous_Allocators  
No_Calendar  
No_Coextensions  
No_Default_Initialization  
No_Delay  
No_Dependence  
No_Direct_Boolean_Operators  
No_Dispatch  
No_Dispatching_Calls  
No_Dynamic_Attachment  
No_Dynamic_Priorities  
No_Entry_Calls_In_Elaboration_Code  
No_Enumeration_Maps  
No_Exception_Handlers  
No_Exception_Propagation  
No_Exception_Registration  
No_Exceptions  
No_Finalization  
No_Fixed_Point  
No_Floating_Point  
No_Implicit_Conditionals  
No_Implicit_Dynamic_Code  
No_Implicit_Heap_Allocations  
No_Implicit_Loops  
No_Initialize_Scalars  
No_IO  
No_Local_Allocators  
No_Local_Protected_Objects  
No_Local_Timing_Events  
No_Nested_Finalization  
No_Protected_Type_Allocators  
No_Protected_Types  
No_Recursion  
No_Reentrancy  
No_Relative_Delay  
No_Requeue_Statements  
No_Secondary_Stack  
No_Select_Statements  
No_Specific_Termination_Handlers  
No_Specification_of_Aspect  
No_Standard_Allocators_After_Elaboration  
No_Standard_Storage_Pools  
No_Stream_Optimizations  
No_Streams  
No_Task_Allocators  
No_Task_Attributes_Package  
No_Task_Hierarchy  
No_Task_Termination  
No_Tasking  
No_Terminate_Alternatives  
No_Unchecked_Access  
Simple_Barriers  
Static_Priorities  
Static_Storage_Size  

Program Unit Level Restrictions
No_Elaboration_Code  
No_Entry_Queue  
No_Implementation_Aspect_Specifications  
No_Implementation_Attributes  
No_Implementation_Identifiers  
No_Implementation_Pragmas  
No_Implementation_Restrictions  
No_Implementation_Units  
No_Implicit_Aliasing  
No_Obsolescent_Features  
No_Wide_Characters  
SPARK  

The Implementation of Standard I/O
9.1 Standard I/O Packages  
9.2 FORM Strings  
9.3 Direct_IO  
9.4 Sequential_IO  
9.5 Text_IO  
9.6 Wide_Text_IO  
9.7 Wide_Wide_Text_IO  
9.8 Stream_IO  
9.9 Text Translation  
9.10 Shared Files  
9.11 Filenames encoding  
9.12 Open Modes  
9.13 Operations on C Streams  
9.14 Interfacing to C Streams  

The GNAT Library
10.1 Ada.Characters.Latin_9 (`a-chlat9.ads')  
10.2 Ada.Characters.Wide_Latin_1 (`a-cwila1.ads')  
10.3 Ada.Characters.Wide_Latin_9 (`a-cwila1.ads')  
10.4 Ada.Characters.Wide_Wide_Latin_1 (`a-chzla1.ads')  
10.5 Ada.Characters.Wide_Wide_Latin_9 (`a-chzla9.ads')  
10.6 Ada.Containers.Formal_Doubly_Linked_Lists (`a-cfdlli.ads')  
10.7 Ada.Containers.Formal_Hashed_Maps (`a-cfhama.ads')  
10.8 Ada.Containers.Formal_Hashed_Sets (`a-cfhase.ads')  
10.9 Ada.Containers.Formal_Ordered_Maps (`a-cforma.ads')  
10.10 Ada.Containers.Formal_Ordered_Sets (`a-cforse.ads')  
10.11 Ada.Containers.Formal_Vectors (`a-cofove.ads')  
10.12 Ada.Command_Line.Environment (`a-colien.ads')  
10.13 Ada.Command_Line.Remove (`a-colire.ads')  
10.14 Ada.Command_Line.Response_File (`a-clrefi.ads')  
10.15 Ada.Direct_IO.C_Streams (`a-diocst.ads')  
10.16 Ada.Exceptions.Is_Null_Occurrence (`a-einuoc.ads')  
10.17 Ada.Exceptions.Last_Chance_Handler (`a-elchha.ads')  
10.18 Ada.Exceptions.Traceback (`a-exctra.ads')  
10.19 Ada.Sequential_IO.C_Streams (`a-siocst.ads')  
10.20 Ada.Streams.Stream_IO.C_Streams (`a-ssicst.ads')  
10.21 Ada.Strings.Unbounded.Text_IO (`a-suteio.ads')  
10.22 Ada.Strings.Wide_Unbounded.Wide_Text_IO (`a-swuwti.ads')  
10.23 Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO (`a-szuzti.ads')  
10.24 Ada.Text_IO.C_Streams (`a-tiocst.ads')  
10.25 Ada.Text_IO.Reset_Standard_Files (`a-tirsfi.ads')  
10.26 Ada.Wide_Characters.Unicode (`a-wichun.ads')  
10.27 Ada.Wide_Text_IO.C_Streams (`a-wtcstr.ads')  
10.28 Ada.Wide_Text_IO.Reset_Standard_Files (`a-wrstfi.ads')  
10.29 Ada.Wide_Wide_Characters.Unicode (`a-zchuni.ads')  
10.30 Ada.Wide_Wide_Text_IO.C_Streams (`a-ztcstr.ads')  
10.31 Ada.Wide_Wide_Text_IO.Reset_Standard_Files (`a-zrstfi.ads')  
10.32 GNAT.Altivec (`g-altive.ads')  
10.33 GNAT.Altivec.Conversions (`g-altcon.ads')  
10.34 GNAT.Altivec.Vector_Operations (`g-alveop.ads')  
10.35 GNAT.Altivec.Vector_Types (`g-alvety.ads')  
10.36 GNAT.Altivec.Vector_Views (`g-alvevi.ads')  
10.37 GNAT.Array_Split (`g-arrspl.ads')  
10.38 GNAT.AWK (`g-awk.ads')  
10.39 GNAT.Bounded_Buffers (`g-boubuf.ads')  
10.40 GNAT.Bounded_Mailboxes (`g-boumai.ads')  
10.41 GNAT.Bubble_Sort (`g-bubsor.ads')  
10.42 GNAT.Bubble_Sort_A (`g-busora.ads')  
10.43 GNAT.Bubble_Sort_G (`g-busorg.ads')  
10.44 GNAT.Byte_Order_Mark (`g-byorma.ads')  
10.45 GNAT.Byte_Swapping (`g-bytswa.ads')  
10.46 GNAT.Calendar (`g-calend.ads')  
10.47 GNAT.Calendar.Time_IO (`g-catiio.ads')  
10.49 GNAT.Case_Util (`g-casuti.ads')  
10.50 GNAT.CGI (`g-cgi.ads')  
10.51 GNAT.CGI.Cookie (`g-cgicoo.ads')  
10.52 GNAT.CGI.Debug (`g-cgideb.ads')  
10.53 GNAT.Command_Line (`g-comlin.ads')  
10.54 GNAT.Compiler_Version (`g-comver.ads')  
10.55 GNAT.Ctrl_C (`g-ctrl_c.ads')  
10.48 GNAT.CRC32 (`g-crc32.ads')  
10.56 GNAT.Current_Exception (`g-curexc.ads')  
10.57 GNAT.Debug_Pools (`g-debpoo.ads')  
10.58 GNAT.Debug_Utilities (`g-debuti.ads')  
10.59 GNAT.Decode_String (`g-decstr.ads')  
10.60 GNAT.Decode_UTF8_String (`g-deutst.ads')  
10.61 GNAT.Directory_Operations (`g-dirope.ads')  
10.62 GNAT.Directory_Operations.Iteration (`g-diopit.ads')  
10.63 GNAT.Dynamic_HTables (`g-dynhta.ads')  
10.64 GNAT.Dynamic_Tables (`g-dyntab.ads')  
10.65 GNAT.Encode_String (`g-encstr.ads')  
10.66 GNAT.Encode_UTF8_String (`g-enutst.ads')  
10.67 GNAT.Exception_Actions (`g-excact.ads')  
10.68 GNAT.Exception_Traces (`g-exctra.ads')  
10.69 GNAT.Exceptions (`g-expect.ads')  
10.70 GNAT.Expect (`g-expect.ads')  
10.71 GNAT.Expect.TTY (`g-exptty.ads')  
10.72 GNAT.Float_Control (`g-flocon.ads')  
10.73 GNAT.Heap_Sort (`g-heasor.ads')  
10.74 GNAT.Heap_Sort_A (`g-hesora.ads')  
10.75 GNAT.Heap_Sort_G (`g-hesorg.ads')  
10.76 GNAT.HTable (`g-htable.ads')  
10.77 GNAT.IO (`g-io.ads')  
10.78 GNAT.IO_Aux (`g-io_aux.ads')  
10.79 GNAT.Lock_Files (`g-locfil.ads')  
10.80 GNAT.MBBS_Discrete_Random (`g-mbdira.ads')  
10.81 GNAT.MBBS_Float_Random (`g-mbflra.ads')  
10.82 GNAT.MD5 (`g-md5.ads')  
10.83 GNAT.Memory_Dump (`g-memdum.ads')  
10.84 GNAT.Most_Recent_Exception (`g-moreex.ads')  
10.85 GNAT.OS_Lib (`g-os_lib.ads')  
10.86 GNAT.Perfect_Hash_Generators (`g-pehage.ads')  
10.87 GNAT.Random_Numbers (`g-rannum.ads')  
10.88 GNAT.Regexp (`g-regexp.ads')  
10.89 GNAT.Registry (`g-regist.ads')  
10.90 GNAT.Regpat (`g-regpat.ads')  
10.91 GNAT.Secondary_Stack_Info (`g-sestin.ads')  
10.92 GNAT.Semaphores (`g-semaph.ads')  
10.93 GNAT.Serial_Communications (`g-sercom.ads')  
10.94 GNAT.SHA1 (`g-sha1.ads')  
10.95 GNAT.SHA224 (`g-sha224.ads')  
10.96 GNAT.SHA256 (`g-sha256.ads')  
10.97 GNAT.SHA384 (`g-sha384.ads')  
10.98 GNAT.SHA512 (`g-sha512.ads')  
10.99 GNAT.Signals (`g-signal.ads')  
10.100 GNAT.Sockets (`g-socket.ads')  
10.101 GNAT.Source_Info (`g-souinf.ads')  
10.102 GNAT.Spelling_Checker (`g-speche.ads')  
10.103 GNAT.Spelling_Checker_Generic (`g-spchge.ads')  
10.104 GNAT.Spitbol.Patterns (`g-spipat.ads')  
10.105 GNAT.Spitbol (`g-spitbo.ads')  
10.106 GNAT.Spitbol.Table_Boolean (`g-sptabo.ads')  
10.107 GNAT.Spitbol.Table_Integer (`g-sptain.ads')  
10.108 GNAT.Spitbol.Table_VString (`g-sptavs.ads')  
10.109 GNAT.SSE (`g-sse.ads')  
10.110 GNAT.SSE.Vector_Types (`g-ssvety.ads')  
10.111 GNAT.Strings (`g-string.ads')  
10.112 GNAT.String_Split (`g-strspl.ads')  
10.113 GNAT.Table (`g-table.ads')  
10.114 GNAT.Task_Lock (`g-tasloc.ads')  
10.116 GNAT.Threads (`g-thread.ads')  
10.115 GNAT.Time_Stamp (`g-timsta.ads')  
10.117 GNAT.Traceback (`g-traceb.ads')  
10.118 GNAT.Traceback.Symbolic (`g-trasym.ads')  
10.119 GNAT.UTF_32 (`g-table.ads')  
10.120 GNAT.Wide_Spelling_Checker (`g-u3spch.ads')  
10.121 GNAT.Wide_Spelling_Checker (`g-wispch.ads')  
10.122 GNAT.Wide_String_Split (`g-wistsp.ads')  
10.123 GNAT.Wide_Wide_Spelling_Checker (`g-zspche.ads')  
10.124 GNAT.Wide_Wide_String_Split (`g-zistsp.ads')  
10.125 Interfaces.C.Extensions (`i-cexten.ads')  
10.126 Interfaces.C.Streams (`i-cstrea.ads')  
10.127 Interfaces.CPP (`i-cpp.ads')  
10.128 Interfaces.Packed_Decimal (`i-pacdec.ads')  
10.129 Interfaces.VxWorks (`i-vxwork.ads')  
10.130 Interfaces.VxWorks.IO (`i-vxwoio.ads')  
10.131 System.Address_Image (`s-addima.ads')  
10.132 System.Assertions (`s-assert.ads')  
10.133 System.Memory (`s-memory.ads')  
10.134 System.Partition_Interface (`s-parint.ads')  
10.135 System.Pool_Global (`s-pooglo.ads')  
10.136 System.Pool_Local (`s-pooloc.ads')  
10.137 System.Restrictions (`s-restri.ads')  
10.138 System.Rident (`s-rident.ads')  
10.139 System.Strings.Stream_Ops (`s-ststop.ads')  
10.140 System.Task_Info (`s-tasinf.ads')  
10.141 System.Wch_Cnv (`s-wchcnv.ads')  
10.142 System.Wch_Con (`s-wchcon.ads')  

Text_IO
9.5.1 Stream Pointer Positioning  
9.5.2 Reading and Writing Non-Regular Files  
9.5.3 Get_Immediate  
9.5.4 Treating Text_IO Files as Streams  
9.5.5 Text_IO Extensions  
9.5.6 Text_IO Facilities for Unbounded Strings  

Wide_Text_IO
9.6.1 Stream Pointer Positioning  
9.6.2 Reading and Writing Non-Regular Files  

Wide_Wide_Text_IO
9.7.1 Stream Pointer Positioning  
9.7.2 Reading and Writing Non-Regular Files  

Interfacing to Other Languages
11.1 Interfacing to C  
11.2 Interfacing to C++  
11.3 Interfacing to COBOL  
11.4 Interfacing to Fortran  
11.5 Interfacing to non-GNAT Ada code  

Specialized Needs Annexes Implementation of Specific Ada Features
13.1 Machine Code Insertions  
13.2 GNAT Implementation of Tasking  
13.3 GNAT Implementation of Shared Passive Packages  
13.4 Code Generation for Array Aggregates  
13.5 The Size of Discriminated Records with Default Discriminants  
13.6 Strict Conformance to the Ada Reference Manual  

Implementation of Ada 2012 Features Obsolescent Features GNU Free Documentation License Index



This document was generated by GNAT Mailserver on May, 10 2012 using texi2html