Development Log in May 2007.

  • GNAT Pro
    May 31st, 2007

    Cursor operations for containers have been inlined
    The Next and Previous container operations for navigating among cursor values were inlined, so cursor manipulation is now more efficient.

  • GNAT Pro | GPS | GNATbench
    May 31st, 2007

    Refactoring now detects read-only files
    When refactoring (in particular when renaming an entity), a dialog is displayed to warn about read-only files that cannot be refactored. The user is then given the choice of refactoring the others anyway, or cancelling the operation

  • GNAT Pro
    May 30th, 2007

    GNAT.Sockets now supported on LynxOS
    The GNAT.Sockets package as documented in the file g-socket.ads is now fully supported on LynxOS.

  • GNAT Pro
    May 28th, 2007

    Better checks for redundant assignments
    Previously the check for a redundant assignment (activated by -gnatwr) was checking only for assignment of a simple variable to itself. This check now catches many more cases (e.g. x.a(1) := x.a(1), or m(1..3):=m(1..3)).

  • GNAT Pro
    May 28th, 2007

    Not all warnings suppressed in dead code
    Previously, if the front end detected that a section of code was dead (for example the THEN statements of an IF statement where the condition was known to be false), all associated warnings would also be deleted. This is indeed appropriate for warnings about range errors, division by zero, or other cases where the condition may well be specifically guarding against the exception being raised. But for warnings that are basically about style, including all actual style messages, they should not be deleted, and no longer are.

  • GNAT Pro | GPS | GNATbench
    May 23rd, 2007

    Recent chosen completions displayed at top of list
    The completion window now remembers recently chosen completions, and will propose them at the top of the completion proposal list, when they are accurate.

  • GNAT Pro
    May 22nd, 2007

    ‘Value suppresses warnings for unused enum literals
    If the 'Value attribute is used for an enumeration type, then this is now considered to be an implicit reference for every literal of the type, which suppresses warnings about literals being unused.

  • GNAT Pro
    May 21st, 2007

    Improved warnings for unreferenced variables
    The warnings for unreferenced variables have been improved to eliminate false positives (incorrect warnings) and false negatives (missed warnings). In particular, the message that a variable could be declared constant now applies to complex types such as Unbounded_String.

  • GNAT Pro
    May 21st, 2007

    New style switch for statements after THEN/ELSE
    A new style switch -gnatyS (not included in -gnaty by default) checks for and disallows statements on the same line following a THEN or ELSE keyword. This usage is discouraged especially when doing line coverage testing since you want separate coverage information for the test and the statements that are controlled by the test.

  • GNAT Pro
    May 19th, 2007

    Warnings for optimized membership tests
    If either or both of the tests for a membership tests for an integer type are optimized away by the compiler because the outcome can be determined at compile time, a warning is given. The warning is under control of -gnatwc (warn on constant conditional).

  • GNAT Pro
    May 18th, 2007

    Warning for non-unique External_Tag in subprogram
    The explicit specification of an external tag for a tagged type declared within a subprogram is problematic, since all invocations of the subprogram share the same external tag, even though the types are distinct. This means that it is not possible to convert such external tags back to internal tag form. A warning is now given for this potentially incorrect usage.

  • GNAT Pro | GPS | GNATbench
    May 12th, 2007

    New contextual menu to build libraries
    It is now possible to build individual libraries directly from the Build project's contextual menu on the Project View.

  • GNAT Pro
    May 11th, 2007

    New pragma Implicit_Packing
    A new configuration pragma Implicit_Packing is implemented that allows a Size clause for a packed array to implicitly pack the array (overriding the normal RM recommendation that Size not change the array layout). This is useful in handling legacy code from compilers not following this RM recommendation.

  • GNAT Pro
    May 9th, 2007

    Warning on redundant renaming declarations
    The compiler warns on a subprogram renaming declaration, when the renaming is redundant, because the new entity and the renamed entity have the same name, and the renamed entity is directly visible.

  • GNAT Pro | GPS | GNATbench
    May 9th, 2007

    Ignore leading spaces in
    If you specify an external command to execute in an XML file, you can now have leading spaces if you wish. This allows you to split the contents of the <external> tag on several lines.

  • GNAT Pro
    May 3rd, 2007

    Better message for ambiguous fixed-point operation
    When a fixed point multiplying operation is ambiguous because the predefined operation declared in Standard is directly visible, the error message now includes an RM reference that clarifies the origin of the ambiguity.

  • GNAT Pro | GPS | GNATbench
    May 2nd, 2007

    Retrieve ‘Class attribute on tooltip documentation
    Documentation displayed by tooltips now displays type of parameters and variables with 'Class when relevant.