Skip to main content

Annex J Obsolescent Features


This Reference Manual output has not been verified, and may contain omissions or errors. Report any problems on the tracking issue


[ This Annex contains descriptions of features of the language whose functionality is largely redundant with other features defined by this Reference Manual. Use of these features is not recommended in newly written programs. Use of these features can be prevented by using pragma Restrictions (No_Obsolescent_Features), see 13.12.1.]


These features are still part of the language, and have to be implemented by conforming implementations. The primary reason for putting these descriptions here is to get redundant features out of the way of most readers. The designers of the next version of Ada will have to assess whether or not it makes sense to drop these features from the language.

Wording Changes from Ada 83


The following features have been removed from the language, rather than declared to be obsolescent:

  • The package Low_Level_IO (see A.6).
  • 1.d
  • The Epsilon, Mantissa, Emax, Small, Large, Safe_Emax, Safe_Small, and Safe_Large attributes of floating point types (see A.5.3).
  • 1.e/2
  • This paragraph was deleted.
  • 1.f
  • The pragmas System_Name, Storage_Unit, and Memory_Size (see 13.7).
  • 1.g
  • The pragma Shared (see C.6).

Implementations can continue to support the above features for upward compatibility.

Wording Changes from Ada 95


A mention of the No_Obsolescent_Features restriction was added.

Wording Changes from Ada 2005


Pragma Controlled has been removed from the language, rather than declared to be obsolescent. No existing implementation gives it any effect. An implementation could continue to support the pragma as an implementation-defined pragma for upward compatibility.