- Ada 2012
- Ada 2005 / 95 / 83
- Embedded Development
- Formal Methods
- Open Source
- Safety-Critical Development
- Static Analysis
Jul 29th, 2005
Line length style check for wide chars
The style check for maximum line length has been changed to count characters instead of bytes, making it useful for the wide character encodings.
Jul 27th, 2005
Enclosing_Entity now fully qualified
The name returned by GNAT.Source_Info.Enclosing_Entity is now fully qualified using periods where possible (this is not always possible, notably in the case of entities appearing in unnamed block statements.)
Jul 23rd, 2005
New warning for ignored pragma Pack for arrays
The Ada standard is not clear on the issue of whether pragma Pack can override an explicitly given component size. The RM is unclear as to whether such overriding is permitted, required, or disallowed. The best choice seems to be to respect an explicitly given component size. A warning is generated for the ignored Pack pragma except in cases where it is clear that the ignored Pack pragma is simply confirming the given component size.
Jul 11th, 2005
New pragma Debug_Policy
A new configuration pragma Debug_Policy, which takes one of two arguments Check or Ignore, controls whether Debug pragmas are active, in a manner exactly analogous to the use of the Ada 2005 pragma Assertion_Policy to control whether Assert pragmas are active.
Jul 5th, 2005
gnatpp option for ‘IS’ in subprogram body
A new option (--no-separate-is) is added to gnatpp. If this option is set, gnatpp tries not to place the 'IS' keyword on a subprogram body on separate line in case if the subprogram specification occupies more then one line
AI-326 Tagged incomplete types
This AI introduces the concept of a "tagged incomplete" type, which is a type that has the same restrictions as an incomplete type except that it may also be used for a formal or actual parameter. For most types, the compiler needs to see the full definition to know how parameters of the type are passed. However, because tagged types are always passed by reference, there is no implementation difficulty in allowing them to be used as parameters even when the full definition of the type is not available.