=========================================================
Known problems in GNAT version 5.01a as of Feb 25th, 2004
=========================================================

Copyright (c) 2003, Ada Core Technologies

The following is a listing of known problems in release 5.01a. Except
where specifically noted, all these problems have been corrected in
version 5.02, which means they are corrected in any wavefront issued
subsequent to the date above, and in the final 5.02 release (which is
not yet scheduled or available). The status line indicates the date the
problem was fixed (in ISO format YYYY-MM-DD). This can be used to
determine if a given wavefront has the fix identified in the entry.

KP-501a-CC23-002 Wrong C headers installed on old Solaris releases

  Problem:    When installing the compiler on old Solaris releases, some C
              header files were erroneously modified.

  Status:     This was fixed in 5.02 on 2004-01-09

  Workaround: Copy manually the header files from the GNAT binary package.

KP-501a-CC15-007 Error on fixed operation with real literals in conversion

  Problem:    Compiler emits a spurious type error on an expression that
              involves fixed-type operations on real literals, when the
              context is a type conversion.

  Status:     This was fixed in 5.02 on 2003-12-15

  Workaround: Qualify integer * real operation with desired fixed-point or
              floating point type.

KP-501a-CC12-012 crash on conversion of anonymous array from other unit

  Problem:    Code generator aborts on a constant declaration of a local
              array type T, initialized with a conversion from an anonymous
              array declared in another package.

  Status:     This was fixed in 5.02 on 2003-12-20

  Workaround: Use an explicit array type in both places instead of an
              anonymous array in original declaration.

KP-501a-CC03-012 Long lines in a sample body generated by gnatstub

  Problem:    If a function spec has a long list of parameters, and these
              parameters have long names, gnatstub may generate a very long
              line containing the return statement in the sample body created
              whbich may exceed GNAT limits.

  Status:     This was fixed in 5.02 on 2003-12-09

  Workaround: Manually split such long lines.

KP-501a-CC02-023 Spurious error on pragma Warnings in inlined body

  Problem:    Compiler emits a spurious error on a pragma Warnings within an
              inlined body.

  Status:     This was fixed in 5.02 on 2003-11-03

  Workaround: Place pragma outside subprogram body, or compile unit without
              front-end inlining.

KP-501a-CC02-022 Spurious error on inlined call returning array

  Problem:    Compiler emits a spurious error  mentioning 'Length on an
              inlined call when body of the function appears in an instance
              and the function returns a private type completed by an array.

  Status:     This was fixed in 5.02 on 2003-11-03

  Workaround: Compile unit without front-end inlining.

KP-501a-CC02-009 Spurious error on type conversion in inlined call in instance

  Problem:    Compiler emits a spurious error on an actual in an inlined call
              when the body of the subprogram to inline appears in an instance
              declared previously in the current scope.

  Status:     This was fixed in 5.02 on 2003-11-03

  Workaround: Compile unit without front-end inlining.

KP-501a-CC05-003 memory leak in loop bounds with function call.

  Problem:    Program consumes memory on a nested loop when a bound is
              an attribute of an unconstrained array returned by a function.

  Status:     This was fixed in 5.02 on 2003-012-09

  Workaround: Introduce a temporary to compute the loop bound.

KP-501a-CC03-011 Wrong pragmas for homonyms from gnatelim

  Problem:    If one of the two homonyms is declared in package spec and
              the other in the package body, and if the first homonym is
              not used, but another one is, then gnatelim may get confused
              and generate an incorrect pragma Eliminate for the unused
              homonym without indicating the homonym number.

  Status:     This was fixed in 5.02 on 2003-12-08

  Workaround: Remove wrong pragmas manually, as it is described in GNAT UG.

KP-501a-CC01-012 inlining error on 'Constrained in instance

  Problem:    Compiler emits a spurious error on an attribute reference
              'Constrained that appears in an inlined call, when the
              body of the subprogram is declared in an instance.

  Status:     This was fixed in 5.02 on 2003-12-01

  Workaround: Compile unit without front-end inlining.

KP-501a-CB30-005 Exception breapoint hit changes the language

  Problem:    The debugger sometimes incorrectly changes the language
              after hitting an exception breakpoint if the exception was
              raised during the execution of the last statement of
              a procedure or function.

  Status:     This problem was fixed in 5.02 on 2003-12-12

  Workaround: Manually force the language to Ada.

KP-501a-CB28-008 Wrong pragmas for protected operations from gnatelim

  Problem:    When analyzing subprogram calls, gnatelim misses calls made
              to protected operations or calls made in the bodies of protected
              operations, so it may generate Eliminate pragmas for subprograms
              which are actually used

  Status:     This was fixed in 5.02 on 2003-12-09

  Workaround: Remove wrong pragmas manually, as described in GNAT UG.

KP-501a-CB24-014 Debugger does not stop at exception breakpoint

  Problem:    On x86-linux, inserting a breakpoint on a specific
              exception does not cause the debugger to stop when that
              exception is raised.

  Status:     This was fixed in 5.02 on 2003-11-28

  Workaround: Recompile the GNAT runtime file a-except.adb with option -O0.

KP-501a-CB21-010 Incorrect debugger information for array components on AAMP

  Problem:    On the AAMP target only, the decl-id associated with the
              DST information for an array type's element type is
              incorrect in cases where the element type is a private
              type (e.g., System.Address).

  Status:     This was fixed in 5.02 on 2003-11-25

  Workaround: Change the component type to a nonprivate type. Alternatively,
              create a record wrapper type with a single component of the
              array element type and redefine the array type to use the
              wrapper as its element type. However this will require
              editing all references to array elements to use selected
              component notation.

KP-501a-CB20-017 Usage displayed twice by "gnatmake -h"

  Problem:    When the command "gnatmake -h" is used, gnatmake usage
              is output twice.

  Status:     This was fixed in 5.02 on 2003-11-20

  Workaround: Do not use -h when calling gnatmake without a main

KP-501a-CB19-021 Exception raised on assignment to unconstrained formal

  Problem:    When passing an unconstrained discriminated component
              of a class-wide object as an actual of mode in out, the
              compiler incorrectly treats the actual as constrained,
              which can lead to Constraint_Error for assignments
              to the formal parameter.

  Status:     This was fixed in 5.02 on 2003-11-20

  Workaround: Assign the selected discriminated component to a temporary
              object and pass the temporary as the actual, and then perform
              an assignment from the temporary back to the discriminated
              component after the call.

KP-501a-CB19-017 Error on in-out conversion of array component

  Problem:    Compiler emits spurious type errors on an in-out actual that
              is a conversion of an array component, when the array index
              is an enumeration with a non-standard representation.

  Status:     This was fixed in 5.02 on 2003-11-25

  Workaround: Use renaming for actual, or use a temporary and write post-call
              assignment explicitly.

KP-501a-CB17-018 Not all executables rebuilt after common source update

  Problem:    When a source common to several mains is updated, gnatmake
              invoked with these mains may fail to detect that one or
              several of these mains are not up to date and should be
              rebuilt (relinked).

  Status:     This was fixed in 5.02 on 2003-11-20

  Workaround: Use gnatmake with a single main on the command line

KP-501a-CB17-006 Incorrect result with in-out conversion of packed slice.

  Problem:    An in-out parameter that is a type conversion of a slice
              of a bit-packed array is not updated correctly by the call.

  Status:     This was fixed in 5.02 on 2003-11-25

  Workaround: Introduce explicit temporary for slice, and explicit
              assignment after the call.

KP-501a-CB16-002 Suppress (Elaboration_Checks) does not work in task body

  Problem:    A function call within a select statement creates an elaboration
              dependency between the package that contains the task and the
              unit that contains the function, even when elaboration checks
              are suppressed by means of a pragma in the task body.

  Status:     This was fixed in 5.02 on 2003-11-20

  Workaround: Place pragma in the enclosing package, or use configuration
              pragma No_Entry_Calls_In_Elaboration_Code

KP-501a-CB12-016 Wrong code for assignment to 32bit bitfield on Xscale

  Problem:    On ARM/XScale, for any optimization level (including O0),
              wrong code may be generated for assignments to 32bit bitfields,
              leaving an unpredictable value in the assigned component.

  Status:     This was fixed in 5.02 on 2003-11-14

  Workaround: Arrange for the assigned component not to be a bitfield
              anymore, for instance by adjusting its alignment/position
              to be consistent with its size.

KP-501a-CB11-004 Spurious style check warnings on predefined file

  Problem:    When a file that has no explicit dependency on System is
              compiled with style checks, spurious warnings are generated
              on System.

  Status:     This was fixed in 5.02 on 2003-011-11

  Workaround: Do not apply style checks to the unit, or add a harmless
              with_clause for System.

KP-501a-CB11-003 Cannot create shared SAL with tasking on Windows

  Problem:    Creating DLL for Stand-Alone Library Project Files
              fail on Windows, when tasking is used.

  Status:     This was fixed in 5.02 on 2003-11-14

  Workaround: Do not use shared SALs when using tasking.

KP-501a-CB10-003 Bad behavior of pretty printer on VMS

  Problem:    GNAT PP invoked with /REPLACE or /OVER fails on VMS.

  Status:     This was fixed in 5.02 on 2003-11-10

  Workaround: Do not use /over or /replace on VMS.

KP-501a-CB07-008 Incorrect backtrace from nested or local procedures

  Problem:    On mips-irix, GDB backtraces sometimes reference the wrong
              code location for nested procedures or procedures only
              defined in package bodies. This problem only occurs with
              a recent version of the IRIX linker.

  Status:     This was fixed in 5.02 on 2003-11-18

  Workaround: Define the nested and local procedures as global by
              declaring them inside a package specification.

KP-501a-CB06-021 Problem setting a breakpoint on overloaded procedures.

  Problem:    The debugger sometimes fails to present the user with
              a multiple choice menu when setting a breakpoint on
              an overloaded function using its function name. Instead,
              it sets a breakpoint on one of the possible choices.

  Status:     This was fixed in 5.02 on 2003-11-06.

  Workaround: Insert the breakpoint using the source location of the
              first statement of the function.

KP-501a-CB05-009 Problem with long pathname with Text_IO Create/Open

  Problem:    If a pathname with a size above OS limit is passed to
              Text_IO Create or Open an EXCEPTION_ACCESS_VIOLATION is
              raised.

  Status:     This was fixed in 5.02 on 2003-11-05

  Workaround: Be sure to check that the pathname does not exceed OS limit.

KP-501a-CB05-003 Spurious error on type derived from Bounded_String

  Problem:    Compiler emits a spurious type error on an expression that is
              a conversion of a call to To_Bounded_String, when the target
              type is derived from a type in an instance of Bounded_String.

  Status:     This was fixed in 5.02 on 2003-11-13

  Workaround: Use directly the inherited operation To_Bounded_String for
              the derived type.

KP-501a-CB04-002 Problem with long pathname with GNAT.OS_Lib API on Win32

  Problem:    If a pathname with a size above OS limit is passed to
              OS_Lib.Is_Regular_File an EXCEPTION_ACCESS_VIOLATION is raised.

  Status:     This was fixed in 5.02 on 2003-11-05

  Workaround: Be sure to check that the pathname does not exceed OS limit.
              On Windows this limit is 260 characters.

KP-501a-CB03-001 Crash on complex address clause for initialized object

  Problem:    Compiler aborts on an address clause for an object of an
              initialized type, when the address clause is a non-static
              type conversion that includes array references and selected
              components.

  Status:     This was fixed in 5.02 on 2003-11-04

  Workaround: Introduce a constant of type Address to capture the desired
              expression, before the object declaration.

KP-501a-CA30-010 Crash with Restrictions and subtype of Boolean

  Problem:    Compiler aborts on a unit that contains a subtype of Boolean
              and an equality operator declared on this subypte, when the
              unit is compiled in the presence of various Restrictions.

  Status:     This was fixed in 5.02 on 2003-10-30

  Workaround: Use Boolean directly, rather than the local subtype.

KP-501a-CA29-039 gnatelim fails when the argument unit is a child subprogram

  Problem:    Whet the argument unit for gnatelim is a child subprogram
              gnatelim fails with junk diagnostic message

  Status:     This was fixed in 5.02 on 2003-10-31

  Workaround: Redefine the argument subprogram as non-child unit and apply
              gnatelim to it. The result will be the same as if you apply
              gnatelim to the original child subprogram

KP-501a-CA29-016 Wrong signal mask after abortion on VxWorks

  Problem:    After executing an abort statement, the abort signal was still
              masked out. VxWorks always mask out signals while they are
              handled until the handler ends its execution; however, exit
              from the handler is done differently in GNAT (through an
              exception handler).

  Status:     This was fixed in 5.02 on 2003-11-21

  Workaround: Unmask the abort signal manually from the user code that is
              executed as a result of the abort.

KP-501a-CA29-009 Missing empty variant parts in ptype output from debugger.

  Problem:    The type information printed by the debugger for variant
              records is incomplete when the variant record contains
              empty variant parts located at the end of the type
              declaration. These empty variant parts will be missing
              from the debugger output.

  Status:     This was fixed in 5.02 on 2003-10-31

  Workaround: Use the type declaration in the source code.

KP-501a-CA29-007 Incorrect ALI file written for -gnatQs if errors found

  Problem:    If a -gnats (syntax check only) compilation encounters
              errors, then an incorrect ali file is generated if
              -gnatQ is also specified. This is wrong, since -gnats
              should never result in an ALI file.

  Status:     This was fixed in 5.02 on 2003-10-29

  Workaround: Do not use -gnatQ in conjunction with -gnats

KP-501a-CA27-023 Packed array field as out argument misupdated on big-endian

  Problem:    On big-endian targets, a packed-array record component passed
              as an out or in-out argument may appear incorrectly set after
              the call when compiling without -fstrict-aliasing.

  Status:     This was fixed in 5.02 on 2003-11-02.

  Workaround: Compile with -O2, or add -fstrict-aliasing to -O0 or -O1.

KP-501a-CA27-018 Gigi abort 310 on 'Position from field of constant

  Problem:    If 'Position is applied to a component reference of a constant,
              a Gigi abort 310 will occur when compiling the program.

  Status:     This was fixed in 5.02 on 2003-10-28.

  Workaround: Use 'Position on the same field of a non-constant object
              of the same type.

KP-501a-CA27-009 Incorrect type resolution of universal fixed membership test

  Problem:    A membership test for a range whose bounds are universal
              fixed-point expressions (i.e. the result of multiplying a
              fixed-point value by a literal) may fail to resolve the
              range to an appropriate subtype.

  Status:     This was fixed in 5.02 on 2003-10-27.

  Workaround: Use a qualified expression to specify the subtype of one bound
              of the range explicitly.

KP-501a-CA24-017 Incorrect packing of atomic components

  Problem:    A pragma pack for an array whose components are of an
              atomic type should be ignored (see RM C.6(21)), but GNAT
              incorrectly performs the packing anyway, resulting in
              possibly incorrect results if separate elements of this
              array are modified/referenced by separate tasks.

  Status:     This was fixed in 5.02 on 2003-10-25

  Workaround: Remove the useless pragma Pack

KP-501a-CA24-013 Crash on dead code in tree-building mode

  Problem:    In tree-building mode, as for ASIS applications, compiler
              crashes on a variable declaration of a constrained array
              type, when the declaration appears in unreachable code in
              an instance.

  Status:     This was fixed in 5.02 on 2003-10-28

  Workaround: Do not compile this unit with -gnatct

KP-501a-CA24-001 Problem with Initialize_Scalars and derived string types

  Problem:    If a unit has types that are derived from String or Wide_String,
              and it is compiled without Initialize_Scalars, and a client of
              this unit is compiled with Initialize_Scalars, then at link time
              there may be an unresolved call to an initialization routine.

  Status:     This was fixed in 5.02 on 2003-10-25

  Workaround: Compile both units with Initialize_Scalars, or use a subtype
              of String or Wide_String instead of a derived type.

KP-501a-CA23-016 GNAT.Calendar.Time_IO spells February wrong

  Problem:    The name of the second month of the year is improperly
              spelled when the picture format includes the full month
              name.

  Status:     This was fixed in 5.02 on 2003-10-24

  Workaround: Avoid using picture formats including %B

KP-501a-CA23-015 GNAAMP fails on object initialized by packed bit array formal

  Problem:    On the AAMP target only, the compiler blows up on a declaration
              of a constrained array object initialized by a packed bit array
              given by an unconstrained formal parameter.

  Status:     This was fixed in 5.02 on 2003-11-24

  Workaround: Change the object declaration's subtype to the unconstrained
              array type of the formal, or alternatively initialize the
              constrained object by a separate assignment statement.

KP-501a-CA23-016 GNAT.Calendar.Time_IO spells February wrong

  Problem:    The name of the second month of the year is improperly
              spelled when the picture format includes the full month
              name.

  Status:     This was fixed in 5.02 on 2003-10-24

  Workaround: Avoid using picture formats including %B

KP-501a-CA23-009 incorrect code for signed packed component loads on AAMP

  Problem:    On the AAMP target only, the compiler generates incorrect
              code for loading packed components that allow negative values
              in their subtype.

  Status:     This was fixed in 5.02 on 2003-11-03

  Workaround: If the packed component can take on negative values, declare
              its subtype with a shifted unsigned range and adjust the value
              appropriately on loads and assignments.

KP-501a-CA22-021 Base_Name checks for drive letters on UNIX

  Problem:    On UNIX machines, Directory_Operations.Base_Name does check for
              drive letters. This is not correct as a colon is valid on UNIX
              filenames.

  Status:     This was fixed in 5.02 on 2003-10-26

  Workaround: Avoid ':' in filename on UNIX

KP-501a-CA22-018 incorrect code for word-crossing component loads on AAMP

  Problem:    On the AAMP target only, the compiler generates incorrect
              code for loading packed components crossing a word boundary.

  Status:     This was fixed in 5.02 on 2003-11-03

  Workaround: When possible, respecify the component to avoid crossing
              a word boundary. If the existing component specification
              is absolutely required, then it may be necessary to perform
              an unchecked conversion to a type that will allow explicit
              extraction of the component value (e.g., convert to a packed
              array of bits, or to an array or record of integers and use
              arithmetic or shift operations to obtain the component value).

KP-501a-CA22-015 Spurious error when inlining with local use clause

  Problem:    Compiler emits spurious ambiguity errors on inlining a call
              for a function whose body is an instance, when the enclosing
              scope of the generic body includes a use clause for an
              unrelated unit that declares a predefined operator.

  Status:     This was fixed in 5.02 on 2003-11-24

  Workaround: Remove local use_clause, or move it to package specification.

KP-501a-CA22-005 Cannot read exception name at exception breakpoint

  Problem:    On Linux and Windows, when the debugger stops on an exception
              breakpoint, it is unable to display the name of the exception,
              and instead displays an error message.

  Status:     This was fixed in 5.02 on 2003-11-28

  Workaround: The error message can be safely ignored. In order to be able
              to display the name of the exception, you need to recompile
              the GNAT runtime file a-except.adb with option -O0.

KP-501a-CA21-031 gnatmake and mains that are not in project files

  Problem:    When gnatmake is invoked with a project file and
              a main specified on the command line with directory
              information that is not a source of the main project,
              if there exists a source with the same simple name,
              this source is taken as the main.

  Status:     This was fixed in 5.02 on 2003-10-23

  Workaround: Do not specify directory information for mains.

KP-501a-CA21-028 gnatmake, project files and foreign mains

  Problem:    When gnatmake is invoked with a project file and
              no main on the command line, if attribute Languages
              includes a language other than Ada and the attribute
              Mains is not an empty list, gnatmake will try to
              compile and build mains in languages other than Ada.

  Status:     This was fixed in 5.02 on 2003-10-23

  Workaround: When there are foreign mains in Attribute Mains,
              always invoke gnatmake with mains specified on the
              command line.

KP-501a-CA16-008 Illegal dispatching call not flagged with -fstack-check

  Problem:    Certain illegal calls on tagged primitive subprograms are
              not caught when using the -fstack-check option. This occurs
              specifically in the context of an assignment with a qualified
              expression applied to a an illegal tag-indeterminate subprogram.

  Status:     This was fixed in 5.02 on 2003-10-17

  Workaround: Remove the illegal calls from the program. Note that the
              compiler correctly diagnoses the illegalities if the
              -fstack-check switch is not used.

KP-501a-CA14-001 Incorrect type resolution for array range in generic body

  Problem:    When the subtype of a constrained array index in a generic body
              is defined by a range whose bounds are constants, its type is
              not correctly determined, which may cause an error when the
              generic is instantiated.

  Status:     This was fixed in 5.02 on 2003-10-14.

  Workaround: Use a discrete subtype indication instead of a range to specifiy
              the index subtype.

KP-501a-CA09-011 gnatmake crashes with many source directories

  Problem:    gnatmake, invoked with a project file, may crash when
              there is a source list file, the number of open file
              descriptors is limited and the number of source
              directories in all the project files is greater that
              this limited number of file descriptors

  Status:     This was fixed in 5.02 on 2003-10-10

  Workaround: Avoid source list files or increase the max number of
              open file descriptors.

KP-501a-CA09-014 External_Tag not handled properly for private types

  Problem:    GNAT ignores a representation clause for External_Tag on a
              private type, if clause appears before full view.

  Status:     This was fixed in 5.02 on 2003-10-13

  Workaround: Place representation clause after full view.

KP-501a-CA09-001 Wrong optimized code for small constant array initializations

  Problem:    On some targets, the initialization of constant arrays less than
              64bit long may be misoptimized by the back end, leaving only
              part of the array assigned.

  Status:     This was fixed in 5.02 on 2003-10-10

  Workaround: Compile the affected unit with optimizations off, or arrange
              for the array not to be considered constant.

KP-501a-CA08-007 inlining bug on child instantiated in sibling

  Problem:    Compiler emits a spurious error when inlining a call to a
              function whose body is declared in an instance of a sibling
              of the current child unit.

  Status:     This was fixed in 5.02 on 2003-10-16

  Workaround: Remove pragma Inlined from function.

KP-501a-CA03-010 Imported bit arrays should not be initialized to zero

  Problem:    The compiler initializes certain bit arrays to zero for
              supporting operations such as array comparison, but this
              initialization should not be done if a pragma Import applies
              to the array object.

  Status:     This was fixed in 5.02 on 2003-10-21

  Workaround: When possible, give an address specification for the bit
              array object, which will cause the suppression of the
              unwanted initialization. One way to do this is by declaring
              a separate imported (non-bit-array) object of a comparable
              size and specifying the bit array object's address as the
              address of the other object.

KP-501a-CA02-017 Crash on aggregate of pointers to private types.

  Problem:    Compiler aborts on a  declaration for an array of access types
              intialized with an aggregate of null values, when the designated
              type is private and its full view has not been seen yet.

  Status:     This was fixed in 5.02 on 2003-10-28

  Workaround: Remove redundant aggregate from declaration.

KP-501a-CA02-002 Wrong file name in ALI file

  Problem:    In some cases, when using several project files,
              with package specs and package bodies in different
              projects, the wong file names are stoted in ALI files,
              and the sources are not found by gnatmake.

  Status:     This was fixed in 5.02 on 2003-10-02

  Workaround: Keep spec and body in the same project file.

KP-501a-CA01-007 ppc-elf-windows: problem with dwarf-2

  Problem:    On ppc-elf (windows hosted), the debugger will not be able to
              understand absolute paths in the debug information.

  Status:     This was fixed in 5.02 on 2003-09-16

  Workaround: Compile with -gstabs+ instead of -g.

KP-501a-C924-010 Foreign sources unnecessarily compiled

  Problem:    When make is invoked on a Makefile produced by gpr2make,
              the project file includes Ada and C or C++ as languages,
              and the list of sources of the project file is specified,
              some foreign sources in the project source directories
              may be improperly compiled, even though they are not in
              the source list of the project.

  Status:     This was fixed in 5.02 on 2003-10-14

  Workaround: Do not put foreign sources that are not immediate
              sources of a project file in one of its source directories.

KP-501a-C923-006 Pragma Unsuppress ineffective after a stub.

  Problem:    If a pragma Unsuppress appears in a package body before a stub
              for a subunit, the corresponding check is still suppressed in
              subsequent code.

  Status:     This was fixed in 5.02 on 2003-10-27

  Workaround: Repeat pragma after stub.

KP-501a-C923-004 Problem with gdb stepping into a separate procedure

  Problem:    The debugger may not be able to step into a separate procedure,
              and may stop on the next line after the call instead of stopping
              at the beginning of this procedure. This problem may also occur
              in a C program if the body of a function is shared between
              several files (using #include).

  Status:     This was fixed in 5.02 on 2003-09-30

  Workaround: Use stepi (step instruction) instead of step.

KP-501a-C922-004 Odd behavior if case specified in Source_File_Name pragma

  Problem:    If a Source_File_Name pragma (or if the project facility creates
              an equivalent Source_File_Name_Project pragma) specifies casing
              to be mixed case or upper case, then the compiler gets confused
              in loading predefined files. This showed up as a failure to
              allow intrinsic operators, but might have other consequences.

  Status:     This was fixed in 5.02 on 2003-09-26

  Workaround: Use standard casing for all files, or avoid the use of pattern
              entries, and use individual pragmas for each application file
              so that predefined files are not affected.

KP-501a-C919-001 Spurious error on deallocation of dynamic of tasks.

  Problem:    Compiler gives a spurious type error on a deallocation when
              the argument is a pointer to an unconstrained array of tasks.

  Status:     This was fixed in 5.02 on 2003-09-19

  Workaround: Use an explicit loop to free each task.

KP-501a-C918-006 GNAAMP back end incorrectly optimizes component accesses

  Problem:    On the AAMP target only, accesses to statically addressed
              components, including as part of composite comparison
              operations, are incorrectly optimized, resulting in
              addressing of adjacent or nearby storage elements.

  Status:     This was fixed in 5.02 on 2003-09-19

  Workaround: Do not enable optimization (-O1) when compiling units that
              involve problematic component addressing,

KP-501a-C916-014 Incorrect usage displayed for -gnatyk/-gnatyr

  Problem:    The usage information displayed when a gnatmake command with
              no arguments is incorrect for -gnatyk/-gnatyr.

  Status:     This was fixed in 5.02 on 2003-09-20

  Workaround: Ignore the output, the usage information in the gnat users
              guide is correct.

KP-501a-C916-011 Spurious discriminant check on record w/ controlled component

  Problem:    Constraint_Error is raised improperly on use of an object of
              an record type R that has a component that is a constrained
              record subtype S with controlled component, when the object is
              declared before the base type B of S is frozen.

  Status:     This was fixed in 5.02 on 2003-09-24

  Workaround: Introduce a variable of type B in before the declaration that
              mentions R.

KP-501a-C916-007 Compiler crashes on overloaded index in entry family component

  Problem:    Compiler aborts on an attribute reference 'Count when the prefix
              is a component of an entry family, and the index is an overloaded
              function call or enumeration literal.

  Status:     This was fixed in 5.02 on 2003-09-22

  Workaround: Qualify the expression for the index to remove overloading.

KP-501a-C912-008 GNAAMP emits incorrect debugger info for enumeration literals

  Problem:    On the AAMP target only, the debugger symbol table information
              for enumeration literals is incorrect: the DST info for a
              literal is given a decl-id corresponding to the literal's
              enumeration type DST record rather than identifying the
              literal itself. Also, the DST name for character literals
              is not of the correct form (it should be the image of the
              character literal).

  Status:     This was fixed in 5.02 on 2003-09-23

  Workaround: Avoid Facade debugger operations that depend on the decl-id
              of enumeration literals.

KP-501a-C911-011 Providing several mains to gnatmake causes crash.

  Problem:    When gnatmake builds several mains, a crash may occur building
              a main that has at least one common unit with another main that
              is sufficiently large to cause this error.

  Status:     This was fixed in 5.02 on 2003-10-01

  Workaround: Invoke gnatmake with only one main

KP-501a-C911-004 Incorrect type resolution for loop range in generic body

  Problem:    When a loop parameter subtype in a generic body is defined
              by a range whose bounds are constants, its type is not
              correctly determined, which may cause an error when the
              generic is instantiated.

  Status:     This issue was fixed in 5.02 on 2003-09-12.

  Workaround: Use a qualified expression to specify the type of one of
              the bounds of the range explicitly.

KP-501a-C910-001 Crash on derived enumeration type with negative rep values

  Problem:    Code generator aborts on the use of an enumeration literal in
              a case statement, when the enumeration type is derived, and it
              has a representation clause with negative values.

  Status:     This issue was fixed in 5.02 on 2003-09-11

  Workaround: If enumeration type requires negative rep. values, declare it
              as separate enumeration type.

KP-501a-C909-003 It is not possible to debug VMS shareable images in gdb.

  Problem:    gdb on OpenVMS doesn't allow stepping into, setting breakpoints,
              data analysis, etc in shareable images

  Status:     This problem is fixed in 5.02 on 2003-10-24

  Workaround: Native VMS debug allows some measure of shareable image debugging

KP-501a-C908-023 Wrong language used to parse breakpoint condition

  Problem:    When debugging a multi-language application, the debugger
              sometimes uses the wrong language to parse a breakpoint
              condition. It usually causes the debugger to either fail
              to parse the condition, or to fail to evaluate it when
              the breakpoint is hit. This occurs the breakpoint is placed
              in a location which associated language is different from
              the current language.

  Status:     This was fixed in 5.02 on 2003-09-10

  Workaround: Temporarily force the language to the correct value using
              the "set lang" command. Restore the automatic language
              selection using "set lang auto".

KP-501a-C908-020 Windows linker fails on path with spaces

  Problem:    On Windows the linker fails in some cases when an argument
              contains spaces.

  Status:     This was fixed in 5.02 on 2003-09-10

  Workaround: Do not put Ada sources in a directory whose path contains
              spaces.

KP-501a-C908-015 ASIS Corresponding_Name_Definition problem

  Problem:    If Corresponding_Name_Definition is applied to the reference
              that follows 'RENAMES', and if this happens inside an expanded
              generic, Corresponding_Name_Definition may blow
              up. This problem also affects gnatpp

  Status:     This was fixed in 5.02 on 2003-09-10

  Workaround: Compute the result of Corresponding_Name_Definition manually,
              using other structural and semantic queries.

KP-501a-C905-013 Compiler abort with full-word store on PowerPC

  Problem:    On PowerPC targets, if there is a record type more than 2 words
              long that contains a 32-bit integral field with a representation
              clause that puts the field on a 32-bit boundary but aligns
              the entire record at a lower boundary and an object of that
              size is allocated on the stack of a subprogram and the 32-bit
              integral field is incremented by a constant at the start of a
              nested subprogram, the compiler may get a fatal error in
              routine find_free_reg.

  Status:     This was fixed in 5.02 on 2003-09-07

  Workaround: Change the record alignment or mis-align the integer field.

KP-501a-C905-005 gnatmake compiles too many files

  Problem:    Sometimes, when using project files, gnatmake invoked
              with a main on the command line will recompile sources
              that are already up to date.

  Status:     This was fixed in 5.02 on 2003-11-16

  Workaround: Put the main in attribute Main of the project file and
              invoke gnatmake with the project file but with no main
              on the command line.

KP-501a-C904-003 Xscale-VxWorks relocation errors on download

  Problem:    On Xscale-VxWorks, downloading programs on a board with more
              than 32M of RAM may trigger LOADER_RELOCATION_OFFSET_TO_LARGE
              error conditions from the loader.

  Status:     This was fixed in 5.02 on 2003-09-09.

  Workaround: Arrange for the kernel to see no more than 32M of RAM, for
              instance by rebuilding it with a big enough USER_RESERVED_MEM
              value, or by removing RAM from the board.

KP-501a-C902-007 Library build fails with indirect import

  Problem:    On some platforms, such as VMS, when a library A imports
              indirectly another library B, linking the library A may
              fail if units of A are importing units of B.

  Status:     This was fixed in 5.02 on 2003-09-03

  Workaround: Import directly all library projects, to avoid
              indirect imports.

KP-501a-C829-007 GNAAMP generates incorrect debug information for objects

  Problem:    On the AAMP target only, the debugger symbol table information
              for an array object with a static index constraint has an
              incorrect object classification (NIL_VAR_MODE, when it should
              be STATIC_ARRAY), and the type field of objects refers to
              the symbol table info for the base type instead of the
              subtype (so constraint information is not available).

  Status:     This was fixed in 5.02 on 2003-09-04

  Workaround: Avoid debugger queries for static array objects and
              for subtype constraint information on objects generally.

KP-501a-C828-001 GNAT does not report unused entities in generic package

  Problem:    When compiling with warnings on unused entities, compiler
              fails to report unused entities in generic package declarations
              that have no bodies.

  Status:     This was fixed in 5.02 on 2003-09-23

  Workaround: Ignore missing warnings.

KP-501a-C827-009 GNAAMP generates incorrect debug info for private types

  Problem:    On the AAMP target only, incorrect (empty) range bounds are
              present in the debugger symbol table information for private
              types whose full type is a numeric type.

  Status:     This was fixed in 5.02 on 2003-09-04

  Workaround: Avoid debugger queries for private types and their
              full types when the full type has a range constraint,
              or make the type nonprivate.

KP-501a-C827-008 Spurious link error with fron-end inlining

  Problem:    If an inlined call appears within a nested procedure in a
              package body whose declaration is in the context of the main
              unit, the linker reports an unresolved reference.

  Status:     This was fixed in 5.02 on 2003-08-28

  Workaround: Compile main unit without front-end inlining.

KP-501a-C826-010 Wrong dependencies between units with extended projects

  Problem:    When using extended projects, a source that incorrectly
              imports a library unit from a project it does not import
              directly or indirectly may compile successfully, while
              it should not.

  Status:     This was fixed in 5.02 on 2003-09-29

  Workaround: Correct the incorrect source

KP-316a-C825-011 Compiler hang with bad program and -gnatq

  Problem:    In some cases, the illegal appearence of a declare block in
              a declarative sequence can put the compiler into an infinite
              loop if semantic analysis is forced with -gnatq or -gnatQ.

  Status:     This was fixed in 3.17 on 2003-07-30

  Workaround: Avoid this illegal usage, or avoid using -gnatq, or use
              -gnatdO to force error messages to be output immediately.

KP-501a-C825-004 Compiler crashes on instance with multiple formal packages

  Problem:    Compiler aborts on an instantiation of a generic package that
              has several formal packages, some with a box and some with
              explicit parameters.

  Status:     This was fixed in 5.02 on 2003-08-28

  Workaround: Place formal packages with parameters ahead of those with box.

KP-501a-C820-017 GNAAMP generates wrong debug info for address clause objects

  Problem:    On the AAMP target only, incorrect debugger symbol table
              records are generated for objects with address clauses.

  Status:     This was fixed in 5.02 on 2003-09-04

  Workaround: Avoid debugger queries for objects with address clauses, or
              replace such objects with access objects initialized to
              point at the required address.

KP-501a-C820-016 Crash on constrained access subtype components

  Problem:    Code generator aborts on a use of a record that has components
              of a constrained access type with a private designated type.

  Status:     This was fixed in 5.02 on 2003-08-22

  Workaround: Use unconstrained access type in the component declarations.

KP-501a-C819-006 Unexpected SIGSTOP after attaching the debugger to a program

  Problem:    After being attached to a program using tasks on RedHat 9,
              the debugger fails to resume the execution of the
              application, and immediately reports the raise of
              an unexpected SIGSTOP signal.

  Status:     This was fixed in 5.02 on 2003-10-28.

  Workaround: Use the Linux Threads Library instead of the NPTL by
              setting the LD_ASSUME_KERNEL environment variable to
              the kernel version (eg 2.4.1).

KP-501a-C819-005 Wrong default architecture (gdb/sparc64 vxworks)

  Problem:    By default, gdb for sparc64 vxworks supposes that the
              architecture of the target is sparc:v8 instead of
              sparc:v9. In this configuration, any gdb command
              may output a memory access error.

  Status:     This was fixed in 5.02 on 2003-07-16

  Workaround: Set explicitely the architecture with the command
              "set architecture sparc:v9" before connecting the target.

KP-501a-C812-003 Backtrace after breaking on an exception (gdb/xscale vxworks)

  Problem:    After breaking on a exception, GDB won't be able to get a
              complete backtrace. The last frame displayed will be a
              function of the run-time library.

  Status:     This was fixed in 5.02 on 2003-09-03

  Workaround: Recompile a-except.adb with -O0.

KP-501a-C811-010 Unable to interrupt the debugger

  Problem:    Certain GDB commands such as a "disassemble" on very large
              procedures can take a very long time to complete. During
              the execution of such commands, GDB is ignoring interrupt
              orders from the user (pressing the stop button in GVD or
              hitting Control-C in GDB).

  Status:     This was fixed in 5.02 on 2003-08-12

  Workaround: Restrict the commands used to smaller contexts in order to
              reduce their execution duration. For instance, disassemble
              a large procedure chunk by chunk.

KP-501a-C811-005 Bad documentation for Fixed_Value, Integer_Value attributes

  Problem:    The GNAT reference manual incorrectly states that these
              attribute functions are equivalent to unchecked conversions.
              This is not the case, since full range checks are performed.

  Status:     This was fixed in 5.02 on 2003-08-11

  Workaround: None needed, since this is a documentation error only. If your
              code relies on absence of range checks, use unchecked conversion
              directly instead of these attributes.

KP-501a-C805-018 Incorrect removal of case expression with side effects

  Problem:    The front end incorrectly removes the evaluation of case
              expressions with side effects when optimizing case statements
              with one alternative.

  Status:     This was fixed in 5.02 on 2003-08-05

  Workaround: Add an additional alternative to the case statement (such
              as an others alternative) or save the result of the case
              expression in a temporary and apply the case to the temporary.

KP-501a-C801-016 warnings on inlining with gnatVa

  Problem:    The front-end emits spurious warnings that some operations in
              predefined units cannot be inlined, when units are compiled
              with validity checks enabled.

  Status:     This was fixed in 5.02 on 2003-08-19

  Workaround: Ignore warnings.

KP-501a-C731-012 Unable to set breakpoint on specific line of source file

  Problem:    When using the Tornado debugger hosted on Windows,
              the debugger is unable to set a breakpoint on a specific
              line of a source file (using the "break FILE:LINENO"
              syntax). The debugger prints an error message saying
              "no line LINENO in file". This only occurs when the
              application has been compiled with -gdwarf-2.

  Status:     This was fixed in 5.02 on 2003-08-01

  Workaround: Compile the application with stabs (-g) instead of dwarf-2
              (-gdwarf-2).

KP-501a-C730-019 Wrong file name in exception message when -gnatD used

  Problem:    If -gnatD is used, then exception messages correctly (and
              usefully) refer to the line number in the expanded (.dg)
              file that caused the exception, but the file name was
              wrong (e.g. test1.adb instead of test1.adb.dg).

  Status:     This was fixed in 5.02 on 2003-08-04

  Workaround: None needed, just be aware that if -gnatD is used, then the
              file referenced in exception messages is the .dg file, even
              if the message itself indicates otherwise.

KP-501a-C730-016 ASIS Corresponding_Name_Definition problem on named numbers

  Problem:    If Corresponding_Name_Definition is applied to the reference to
              a named number, and if this reference is a part of discriminant
              association, Corresponding_Name_Definition may blow up. This
              problem also affects gnatpp

  Status:     This was fixed in 5.02 on 2003-07-31.

  Workaround: Compute the result of Corresponding_Name_Definition manually,
              using other structural and semantic queries.

KP-501a-C730-011 GNAAMP fails on aggregates with subprogram'address

  Problem:    On the AAMP target only, uses of a subprogram Address
              attribute within an aggregate can cause the compiler
              to blow up or to generate incorrect ROM data (the latter
              in the case of a statically allocated aggregate).

  Status:     This was fixed in 5.02 on 2003-07-31

  Workaround: Assign the aggregate to a variable, initialize any such
              components of type Address with System.Null_Address, and
              reinitialize those components with the Address attributes
              by using separate assignments.

KP-501a-C730-008 gnatpp crashes on '<>,' sequence

  Problem:    gnatpp crashes if the argument code contains the box delimiter
              immediately followed by a comma.

  Status:     This was fixed in 5.02 on 2003-07-30

  Workaround: Do not use gnatpp for the sources containing such constructs

KP-501a-C730-016 ASIS Corresponding_Name_Definition problem on named numbers

  Problem:    If Corresponding_Name_Definition is applied to the reference to
              a named number, and if this reference is a part of discriminant
              association, Corresponding_Name_Definition may blow up. This
              problem also affects gnatpp

  Status:     This was fixed in 5.02 on 2003-07-31

  Workaround: Compute the result of Corresponding_Name_Definition manually,
              using other structural and semantic queries.

KP-501a-C730-006 Spurious error on use-visible name in instance

  Problem:    If a generic unit G has a local package instance Inst, a use
              clause on Inst, and a referece to name X declared in Inst, then
              if G is instantiated in a context that has a visible use-clause
              on some other package that also declares an entity named X, the
              compiler will reject the instantiation with a message that
              multiple use clauses cause hiding.

  Status:     This was fixed in 5.02 on 2003-07-30

  Workaround: Use an expanded name for X within the generic.

KP-501a-C728-009 Compiler does not detect accessibility violation

  Problem:    GNAT does not reject a use of 'Access that statically violates
              accessibility rules, when the prefix of the attribute is a
              component of a conversion of a dereferenced access discriminant.

  Status:     This was fixed in 5.02 on 2003-07-28

  Workaround: Do not write such illegal attribute references. If code is
              safe, use Unchecked_Access instead.

KP-501a-C728-001 gnatmake does not compile closure of project sources

  Problem:    When gnatmake is invoked with a project file and no main
              on the command line, and there is no attribute Main in
              the project file, gnatmake only compile/check the immediate
              sources of the project file, not the sources they depend on.

  Status:     This was fixed in 5.02 on 2003-07-28

  Workaround: Invoke gnatmake on the imported project files

KP-501a-C725-004 No executable suffix when attribute Executable specified

  Problem:    When in a project file an attribute Executable specifies
              a file name without the executable suffix of the platform,
              this executable suffix was not added to the file name.

  Status      This was fixed in 5.02 on 2003-07-27

  Workaround: Always specify file names with the platform specific
              executable suffix.

KP-501a-C723-006 Compiler crash on intrinsic exponentiation with private type

  Problem:    Compiler aborts on an exponentation operation when the
              the result type is private and the operands are static.

  Status:     This was fixed in 5.02 on 2003-07-22

  Workaround: Make the result type non-private.

KP-501a-C722-012 GNAAMP generates incorrect code for packed bit-array formals

  Problem:    On the AAMP target only, formal parameters of small packed
              bit-array types are not addressed properly.

  Status:     This was fixed in 5.02 on 2003-07-24

  Workaround: Enclose the bit-array type in a record type and change the
              type of the formal to the record type.

KP-501a-C722-006 Initialize_Scalars fails with constrained float subtypes

  Problem:    If a program compiled with pragma Initialize_Scalars has
              uninitialized variables whose type is a floating-point type
              with a constraint, then incorrect constraint errors may be
              generated while initializing these variables.

  Status:     This was fixed in 5.02 on 2003-07-31

  Workaround: Make sure such variables are initialized, or remove the
              constraint on the floating-point type.

KP-501a-C718-008 Problem with non-standard array indexed by function call

  Problem:    If an array whose index type is an enumeration with a rep.
              clause is indexed by a function call, the call is executed
              twice.

  Status:     This was fixed in 5.02 on 2003-07-22

  Workaround: Use temporary to compute function call, and use temporary in
              indexed component.

KP-501a-C717-005 Crash on intrinsic "mod", "rem", and "/" on private types

  Problem:    Code generator aborts on uses of operators declared with
              Import (Intrinsic) when the underlying type is a 64-bit integer.

  Status:     This was fixed in 5.02 on 2003-07-18

  Workaround:  Introduce function bodies for the operators, and make then
               inlined.

KP-501a-C715-009 Entry barrier misformatted by gnatpp

  Problem:    The output from gnatpp is missing a space between the 'when'
              and the condition expression in the entry barrier

  Status:     This was fixed in 5.02 on 2003-07-16.

  Workaround: Add missing spaces manually in the reformatted code

KP-501a-C715-005 Compiler crash on call to renaming of intrinsic operator

  Problem:    Compiler aborts on a function call whose name is that of a
              renaming of a user-defined intrinsic operator, when the result
              type of the operator is private.

  Status:     This was fixed in 5.02 on 2003-07-22

  Workaround: Make the result type non-private.

KP-501a-C718-007 Compiler crash on illegal address clause

  Problem:    Compiler aborts on an address specification clause for an
              entity that denotes an object renaming declaration.

  Status      This was fixed in 5.02 on 2003-07-21

  Workaround: Do not write such an illegal address specification.

KP-501a-C716-010 gnatpp crashes on subtype indication as index constraint

  Problem:    gnatpp crashes or starts to generate a completely wrong output
              text after processing a subtype indication which is used as an
              index containing and which is followed by a comma delimiter

  Status:     This was fixed in 5.02 on 2003-07-26

  Workaround: Do not use gnatpp for the sources containing such constructs

KP-501a-C710-005 crash on intrinsic operators with overloaded operands

  Problem:    Code generator aborts on an operation declared Import (Intrinsic)
              when one operand is an overloaded operator on a real literal.

  Status:     This was fixed in 5.02 2003-07-10

  Workaround: Introduce a separate temporary for operand.

KP-501a-C710-001 gnatN failure on child unit with instance

  Problem:    Compiler reports spurious type errors on a child unit that
              has a nested instantiation containing inlined calls.

  Status:     This was fixed in 5.02 on 2003-07-10

  Workaround: Compile child unit without front-end inlining.

KP-501a-C709-009 Cannot unwind through no-return procedure (gdb/ppc vxworks)

  Problem:    Using the backtrace command in gdb, if one of the frames is
              a no-return procedure, the next frames displayed by gdb will
              be inaccurate. In particular, the backtrace displayed after
              breaking on an exception will be corrupted. This problem is
              specific to the ppc vxworks port.

  Status:     This was fixed in 5.02 on 2003-07-30

  Workaround: Remove the No_Return pragmas from the relevant units.

KP-501a-C716-007 Incorrect mapping file crashes the compiler

  Problem:    An ill-formatted mapping file, transmitted through
              a -gnatem= switch, causes a compiler crash.

  Status:     This was fixed in 5.02 on 2003-07-16.

  Workaround: Either remove the -gnatem= compiler switch (or the
              -C= gnatmake switch) or correct the mapping file.

KP-501a-C703-020 Indirect references to volatile object are not volatile

  Problem:    When pointer of an access type designating a volatile
              type is used, indirect references to designated objects
              are performed as if the object was not volatile.

  Status:     This was fixed in 5.02 on 2003-07-21

  Workaround: Instead of using a pointer to indirectly reach a volatile
              object at a given address, define an object of the volatile
              type, force its address using an Address clause, and reference
              it directly.

KP-501a-C623-010 Ada.Command_Line raises exception when argv/argc unavailable

  Problem:    A call to Ada.Command_Line.Argument_Count raised Program_Error
              if the target did not implement argv/argc. It should return 0.

  Status:     This was fixed in 5.02 on 2003-09-02

  Workaround: Do not call this routine on targets for which argc/argv
              processing is not available.

KP-501a-C611-007 Address clause generates bad msg about volatile

  Problem:    If a variable is given an address clause, then certain uses
              of the variable can generate error messages complaining about
              invalid use of a volatile variable.

  Status:     This was fixed in 5.02 on 2003-07-16.

  Workaround: Explicitly mark the variable involved as being volatile. This
              is probably good practice anyway to ensure proper treatment of
              overlays or memory mapped storage.

KP-501a-C610-001 gnatmake fails with "WARNING: ALI or object file not found ..."

  Problem:    Sometimes gnatmake may fail with the message "WARNING: ALI or
              object file not found after compile" even though both ALI and object
              file are present. This occurs when object file is created with
              timestamp older than the ALI  (observed in some networked
              environments).

  Status:     This was fixed in 5.02 on 2003-12-21.

  Workaround: Change the timestamp of the object file so that it is newer than that
              of the ALI (by e.g. "touching" the file).

KP-501a-C519-008 Improper overriding of controlled operation

  Problem:    If the parent type of a derived type D is a private type
              whose full view is controlled, and D declares a visible
              Initialize procedure, this procedure is used on a variable
              of type D declared elsewhere, even though the operation does
              not override the hidden inherited operation.

  Status:     This was fixed in 5.02 on 2003-08-01

  Workaround: Use a different name for the operation.

KP-501a-C303-003 Bad size for fixed subtype with no constraint

  Problem:    If a subtype declaration refers to a fixed-point type with no
              constraint, and the parent type has a size clause, the subtype
              may have an incorrect size, resulting in incorrect values.
              Such subtypes occur implicitly for generic types.

  Status:     This was fixed in 5.02 on 2003-08-13

  Workaround: Provide explicit size clauses for the subtype, or remove the
              size clause for the parent type.

KP-501a-6228-002 User-defined "=" incorrectly hides tagged primitive equality

  Problem:    The presence of a user-defined "=" operator with a parameter
              of a tagged type that does not override the normal primitive
              equality of that type can incorrectly hide the primitive
              equality, resulting in failure to resolve legal uses of the
              primitive equality operator.

  Status:     This was fixed in 5.02 on 2003-09-26

  Workaround: Change the name of the offending user-defined "=" operator
              to avoid the clash with the type's primitive equality.

KP-501a-CC04-009 Last parameter in GNAT.Table may be set incorrectly

  Problem:    In an instance of GNAT.Table, if Set_Item is used to write
              past the end of the table and if the necessary space has
              already been allocated, the Last variable will not be modified
              and will reflect the previous value.

  Status:     This was fixed in 5.02 on 2003-12-04

  Workaround: Do not write past the end of the table using Set_Item or
              use Set_Last to force the update of the Last variable.
