Development Log in April 2004.

  • GNAT Pro
    Apr 30th, 2004

    New restriction Simple_Barriers
    This restriction forbids the use of Boolean expressions in entry barriers other than static Boolean expressions or a Boolean component of the enclosing protected object. This supersedes the restriction Boolean_Entry_Barriers. The new form is the one intended to be standardized in the new revision of Ada. The form Boolean_Entry_Barriers is retained as a synonym for back compatibility with older versions of GNAT.

  • Ada | Ada 2005 / 95 / 83
    Apr 30th, 2004

    AI-305 Simple_Barriers restriction
    This restriction forbids entry barrier condition expressions other than boolean objects declared in the protected type which contains the entry.

  • GNAT Pro
    Apr 28th, 2004

    Tasking support debugging Tru64 core file
    The debugger has been enhanced to provide better tasking support on Tru64 when inspecting a core file. The debugger is now able to print the list of tasks, and to switch from task to task. To take advantage of this feature, the core file must have been opened using read-write access, which is achieved by using the following command: "set write on". Beware that this will allow the debugger to write inside the core file, and therefore potentially change its contents. It is therefore recommended that the core file be backed up before being opened by the debugger.

  • GNAT Pro
    Apr 27th, 2004

    New warning for null pointer dereference
    Some new cases where a potentially null pointer is dereferenced are now detected and reported.

  • GNAT Pro
    Apr 26th, 2004

    Optimization of local indirect calls
    If a value of a remote access-to-subprogram type designates a subprogram on the local partition, and pragma All_Calls_Remote does not apply to the enclosing library unit, dereferences of that value are now optimized as local calls instead of going through the Partition Communication System.

  • GNAT Pro
    Apr 25th, 2004

    New restriction No_Dynamic_Attachment
    This restriction ensures that there is no call to any of the operations defined in package Ada.Interrupts. This supersedes the older restriction No_Dynamic_Interrupts. The new form is the form intended to be standardized in the new revision of Ada. The form No_Dynamic_Interrupts previously implemented in GNAT is retained as a synonym for back compatibility.

  • Ada | Ada 2005 / 95 / 83
    Apr 25th, 2004

    AI-305 No_Dynamic_Attachment
    This restriction ensures that there is no call to any of the operations defined in package Ada.Interrupts. This is the same as No_Dynamic_Interrupts, which is retained but considered obsolescent.

  • GNAT Pro
    Apr 23rd, 2004

    Better debugging for reference variables
    The value of a given variable is sometimes stored via a reference. When asking the debugger to print the value of such variables, the debugger has been enhanced to print the actual value without prepending its type and address. If necessary, the type information is available via the "ptype" command, while the address of the variable can be obtained by using the "'Address" attribute.

  • GNAT Pro
    Apr 23rd, 2004

    GNAAMP checks size of local environment
    On the AAMP target only, the compiler now checks that the local data size of a subprogram does not exceed the maximum allowed size of 32767 words.

  • Ada | Ada 2005 / 95 / 83
    Apr 21st, 2004

    AI-254 Anonymous access to subprogram types
    Anonymous access to subprogram types increase flexibility of manipulating an access to a subprogram and in particular allow an access to a subprogram at any level to be passed as an actual parameter to a protected or non-protected subprogram

  • GNAT Pro
    Apr 20th, 2004

    New parameter format for pragma Eliminate
    Homonym_Number is removed, because it does not ensure the correct homonym elimination. Instead, the new Source_Location parameter is added. The gnatelim tool automatically generates pragmas with this new parameter.

  • GNAT Pro
    Apr 17th, 2004

    New gnatmake switch -eL (follow links)
    By default, the Program Manager, when looking for source files will not check if a file is a symbolic link. In some circumstances, the same source file may be accessed via more than one path name, some of them being symbolic links, and this may lead to errors. A new gnatmake switch -eL instructs the Project Manager to check and follow all symbolic links, to avoid such errors.

  • GNAT Pro
    Apr 16th, 2004

    Better error msg for illegal indirect call
    If a call to a dereference of an access-to-subprogram value is made with actual parameters of the wrong type, the error message now indicates the name of the access-to-subprogram type if the -gnatf (full error messages) flag is in effect.

  • GNAT Pro
    Apr 10th, 2004

    Restrictions displayed by gnatls -v
    When gnatls is invoked in verbose mode (with -v), the restrictions are displayed for sources that are compiled with pragma Restrictions, with their values for those restrictions that have values.

  • GNAT Pro
    Apr 4th, 2004

    Lower bounds of 1 from Current_Exception
    The functions in GNAT.Current_Exception always return a lower bound of one for returned strings. Previously the lower bound from Exception_Name could be greater than 1.

  • GNAT Pro
    Apr 4th, 2004

    Better error msg for comma between with/use
    If a comma is used instead of a semicolon between WITH and USE clauses, a clear error message is now given instead of a missing identifier message.

  • GNAT Pro
    Apr 1st, 2004

    Improved warnings on constant pointers
    Some new cases where a pointer is declared without the 'constant' keyword but never modified are now detected, and trigger a warning when -gnatwk (warn on constant variables) is in effect.

  • GNAT Pro
    Apr 1st, 2004

    Pass -mxxx and -fxxx switches to gnatlink
    When gnatmake is invoked with -mxxx (e.g., -m64) or -fxxx (e.g., -ftest-coverage), these switches are passed not only to the compiler, but also to gnatlink, because compiling the binder generated files with these GCC switches may be necessary.