Next: , Previous: Implementation of Specific Ada Features, Up: Top


16 Implementation of Ada 2012 Features

This chapter contains a complete list of Ada 2012 features that have been implemented. Generally, these features are only available if the `-gnat12' (Ada 2012 features enabled) option is set, which is the default behavior, or if the configuration pragma Ada_2012 is used.

However, new pragmas, attributes, and restrictions are unconditionally available, since the Ada 95 standard allows the addition of new pragmas, attributes, and restrictions (there are exceptions, which are documented in the individual descriptions), and also certain packages were made available in earlier versions of Ada.

An ISO date (YYYY-MM-DD) appears in parentheses on the description line. This date shows the implementation date of the feature. Any wavefront subsequent to this date will contain the indicated feature, as will any subsequent releases. A date of 0000-00-00 means that GNAT has always implemented the feature, or implemented it as soon as it appeared as a binding interpretation.

Each feature corresponds to an Ada Issue ('AI') approved by the Ada standardization group (ISO/IEC JTC1/SC22/WG9) for inclusion in Ada 2012. The features are ordered based on the relevant sections of the Ada Reference Manual ("RM"). When a given AI relates to multiple points in the RM, the earliest is used.

A complete description of the AIs may be found in <http://www.ada-auth.org/ai05-summary.html>.

Supported Aspect

Source


Ada_2005

– GNAT


Ada_2012

– GNAT


Address


Alignment


Atomic


Atomic_Components


Bit_Order


Component_Size


Contract_Cases

– GNAT


Discard_Names


External_Tag


Favor_Top_Level

– GNAT


Inline


Inline_Always

– GNAT


Invariant

– GNAT


Machine_Radix


No_Return


Object_Size

– GNAT


Pack


Persistent_BSS

– GNAT


Post


Pre


Predicate


Preelaborable_Initialization


Pure_Function

– GNAT


Remote_Access_Type

– GNAT


Shared

– GNAT


Size


Storage_Pool


Storage_Size


Stream_Size


Suppress


Suppress_Debug_Info

– GNAT


Test_Case

– GNAT


Thread_Local_Storage

– GNAT


Type_Invariant


Unchecked_Union


Universal_Aliasing

– GNAT


Unmodified

– GNAT


Unreferenced

– GNAT


Unreferenced_Objects

– GNAT


Unsuppress


Value_Size

– GNAT


Volatile


Volatile_Components


Warnings

– GNAT

Note that for aspects with an expression, e.g. Size, the expression is treated like a default expression (visibility is analyzed at the point of occurrence of the aspect, but evaluation of the expression occurs at the freeze point of the entity involved).

RM References: 3.02.01 (3) 3.02.02 (2) 3.03.01 (2/2) 3.08 (6) 3.09.03 (1.1/2) 6.01 (2/2) 6.07 (2/2) 9.05.02 (2/2) 7.01 (3) 7.03 (2) 7.03 (3) 9.01 (2/2) 9.01 (3/2) 9.04 (2/2) 9.04 (3/2) 9.05.02 (2/2) 11.01 (2) 12.01 (3) 12.03 (2/2) 12.04 (2/2) 12.05 (2) 12.06 (2.1/2) 12.06 (2.2/2) 12.07 (2) 13.01 (0.1/2) 13.03 (5/1) 13.03.01 (0)