- Ada 2012
- Ada 2005 / 95 / 83
- Embedded Development
- Formal Methods
- Open Source
- Safety-Critical Development
- Static Analysis
May 27th, 2004
Warning on assigned but never read
A warning is now generated on composed types that are assigned but never read when compiling with the -gnatwa switch.
New debugger command: start
The debugger provides a new command named "start". It starts the execution of the program until it reaches the beginning of the main program, and works for all languages. It replaces the "begin" command, which was only supported for Ada. For upward-compatibility, "begin" is still provided as an alias of "start".
Warning on pragma Unchecked_Union
The usage of pragma Unchecked_Union does not constitute a reference to the argument of the pragma. Compiling with the -gnatwu switch will correctly emit a warning if the type is not referenced.
Option for gnatpp to suppress backup copies
A new option "-rnb" (/NO_BACKUP in VMS) is implemented for gnatpp. When this option is specified, gnatpp replaces the input source file by the reformatted version without creating any backup copy of the original source file.
Warning on deferred constants
The full declaration of a deferred constant does not constitute a reference. Compiling with the -gnatwu switch will correctly emit a warning if the constant is not referenced.
Warning on representation clause
The usage of a representation clause does not constitute a reference to the argument type. Compiling with the -gnatwu switch will correctly emit a warning if the type is not referenced.
AI-262 Private-with clause
The context clause "private with" allows withing of private units in visible unit specifications. It does not make the unit available in the visible part of package.
May 23rd, 2004
Documentation of -m switches
A section has been added to the users guide on the use of GCC -m switches to tailor the generated code. The general summary is that these will typically work fine with GNAT Pro, but we do not qualify with these switches set, so they should not be used unless there is a strong reason for their use.
May 21st, 2004
Improved performance for GNAT.HTable
The default hashing algorithm for strings has been improved. The improvement is particularly noticeable for short strings.
May 14th, 2004
Exclusion of comment formatting in gnatpp
An option ('-c0') is added to gnatpp which turns off all comment formatting, so the comments are just copied into the reformatted source exactly in the same form as in the source input file.
May 10th, 2004
Asis.Extensions.Is_Exported function added
This function checks if its argument is a defining name to which a valid pragma Export applies.
No line length check in config pragma file
The parsing of configuration pragma files always did a line length check against the default maximum line size (typically 255 characters) and there is no way to use a -gnatyMnnn switch to override this since the pragma file is read before this switch is active. The compiler has been enhanced to ignore all line length checking during config pragma file scans, allowing arbitrary length (up to 32767 characters long) lines.
Concatenation allowed for pragma Eliminate
The arguments for pragma Eliminate that previously used to require string literals now allow concatenations of string literals. This is particularly useful for the new form of the Source_Location argument, which can get quite long if long path names are used.
May 6th, 2004
Metric tool is available
A new tool gnatmetric is added to the GNAT toolset. This tool computes a set of metrics for the argument Ada source files. This set includes the syntax metrics, line metrics and McCabe complexity metrics.
May 2nd, 2004
Better debugging support for tagged types
When printing a tag value (type Ada.Tags.Tag), the debugger GDB will now print the expanded name of the tag (the full expanded name of the first subtype of the specific type identified by the tag). It will also attempt to print tagged objects according to their specific types, and to allow selection from tagged objects according to their specific types.