=============================================================
Known problems in GNAT version 3.13a1 as of January 308, 2001
=============================================================

Copyright (c) 2001, Ada Core Technologies

The following is a listing of known problems in release 3.13a1. Except where
specifically noted, all these problems have been corrected in version 3.14,
which means they are corrected in any wavefront issued subsequent to the
date above, and in the final 3.14 releases.

KP-313a1-8526-001 No CE for XOR on packed array of constrained Booleans

  Problem:    An XOR operation on a packed array where the component type
              is Boolean with a range of True..True does not raise a
              Constraint_Error exception (cf KP-313a1-8523-008, of
              which this is an even more obscure case).

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: It is hard to imagine this being of significance in any real
              program, but if so, then insert a specific test to raise
              Constraint_Error if the component type has range True..True.

KP-313a1-8523-008 No CE for NOT on packed array of constrained Booleans

  Problem:    A NOT operation on a packed array where the component type
              is Boolean with a range of False..False or True..True does
              not raise Constraint_Error.

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: It is hard to imagine this being of significance in any real
              program, but if so, then insert a specific test to raise
              Constraint_Error if the component type low and high bounds
              of the component type are equal.

KP-313a1-8523-004 GDB gets lengths of some scalar types wrong

  Problem:    With the stabs debugging format, the length of certain
              subtypes that are described as ranges are miscalculated.  The
              result shows up as incorrect values on big-endian machines, and,
              when these types are used as array element types, incorrect 
              index computations.

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: Raw data displays such as x/x y'address still work. If you
              know of an integer type T that has the right length, then
              you can also use (T'access(y'access)).all.

KP-313a1-8519-007 Passing zero length objects

  Problem:    On the SGI MIPS, passing an object whose size is constant and
              zero bits may cause corruption of the fixed part of the frame
              so the function will not return properly.

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: Usually the use of a type as a parameter that has fixed zero
              size can be eliminated (since nothing useful is passed). If
              it is absolutely necessary to pass such an object, embed it
              in a record.

KP-313a1-8519-004 Undefined reference with -fPIC and -gnatn on x86.

  Problem:    When compiling some programs with both -fPIC and -gnatn
              for x86 targets, an undefined symbol message may be produced
              by the assembler for a symbol whose name is "LPR" followed by
              a small integer.

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: Omit either -fPIC or -gnatn.

KP-313a1-8518-012 Problem displaying packed records on Solaris

  Problem:    On big-endian machines, when a field of a packed record 
              is itself a record, and the size of the field is smaller
              than the size of the field's type (as can happen when the
              type has padding at the end), GDB gets incorrect results
              when fetching the field.

  Status:     The problem is corrected in GNAT version 3.14 GDB, in both
              the 4.17 and 5.0 branches.

  Workaround: The locution (r.f'address).all, where f is the name of 
              a field having a record type will generally display that
              field's value.

KP-313a1-8516-013 Gigi 999 abort on RS/6000 or PowerPC

  Problem:    If a conversion between integer and single-precision
              floating-point occurs in a subprogram that has a very
              large frame size, a Gigi abort 999 may occur on RS/6000
              and PowerPC targets.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Compile with optimization if not already, move the conversion
              into a function, or split up the subprogram.

KP-313a1-8512-015 Problem with change of representation conversion

  Problem:    A conversion of an array object to an unconstrained array
              type where a change of representation is required may result
              in incorrect error diagnostics.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Convert to a constrained array subtype with appropriate
              bounds instead of the unconstrained type.

KP-313a1-8511-004 Size of zero rejected

  Problem:    If a confirming size clause is present for a type whose size
              is zero, GNAT issues an error message.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Omit such size clauses.

KP-313a1-8510-001 Source files names cannot start with digit

  Problem:    Source file names starting with digits are incorrectly
              interpreted as predefined runtime files.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Avoid source file names starting with a digit

KP-313a1-8508-012 unable to display parameter passed by reference in gdb

  Problem:    When GNAT chooses to pass a parameter by reference, and
              annotates the debugging output by marking the parameter as a
              reference-to-T value, GDB may incorrectly consider it a null
              reference pointer and refuse to display the parameter's value.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: You can see the parameter in C mode.  Alternatively, you can
              convert the raw reference value (which is displayed) to a 
              pointer and display that:
                  (gdb) p x
                  $1 = (<ref> Foo) @0x513a0: (null)
                  (gdb) p (Foo'access (0x513a0)).all

KP-313a1-8508-009 Type representation in GDB incorrect

  Problem:    Certain record field types are incorrectly reported as
              void.  Can also cause GDB to blow up when displaying         
              values of the type.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Such data can be displayed in C mode.

KP-313a1-8506-005 Record conversion malfunctions

  Problem:    If a conversion is performed between two derived array
              types, one of which is packed, and one of which is not,
              then the result could be incorrect.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Copy the elements of the array one by one to achieve the
              desired conversion effect.

KP-313a1-8505-009 Incorrect handling of Source_Reference pragma by gnatchop

  Problem:    If comments appear before a Source_Reference pragma in a file
              processed by gnatchop they are placed before the pragma in the
              following file. They should be placed in the previous file,
              since a Source_Reference pragma must come first.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid such comments, or manually move them to the correct file.

KP-313a1-8503-002 Incorrect error messages from Source_Reference pragma

  Problem:    If a Source_Reference pragma specifies a file with a directory,
              then error messages incorrectly include the directory in the
              error message.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid the use of Source_Reference pragmas with directory
              information. When using gnatchop -r, do the chop in the
              current directory.

KP-313a1-8501-003 Missing style checks for parent unit names

  Problem:    The parent unit names appearing in the declaration of a child
              package or subprogram are not properly style checked when the
              switch -gnatyr is set.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Manually ensure that such references have the proper casing.

KP-313a1-8429-002 Compiler crash on use of class-wide subtype 

  Problem:    The compiler aborts when an unchecked deallocation is defined
              on an access type whose designed type is an explicit subtype
              of a class-wide type.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use the 'Class attribute reference in the access type
              declaration, rather than the explicit subtype name.

KP-313a1-8426-005 Problem in displaying string object

  Problem:    If X is a reference to an unconstrained array
              (including unconstrained String), then in some
              cases, attempting to print the actual array
              referred to by X fails.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: In C mode, one can see the underlying fat pointer, which
              contains the address of the desired array (or string).

KP-313a1-8421-008 Incorrect stream output for derived Boolean

  Problem:    The default stream routines malfunction for the case of a
              derived Boolean with a non-standard representation.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Define specific stream routines for the type in question that
              generate the desired behavior.

KP-313a1-8419-016 Missing discriminant checks on derived type

  Problem:    Discriminant checks may be missing on component assignments of
              an untagged derived record type with discriminants.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Introduce a declaration for a dummy variable of the parent type,
              before the type derivation.

KP-313a1-8418-004 SGI N32 gdb shows only half gp register bits

  Problem:    64-bit integer and floating-point quantities held in registers
              in SGI N32 programs (mips) are improperly displayed, because 
              GDB looks at only 32 bits.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Unfortunately, there is no good general workaround. In the
              case of register parameters, one can sometimes find the value
              by going back up the call chain and finding the original 
              actual parameter, if this is held in memory.

KP-313a1-8414-007 Makefile.adalib does not work properly for Tornado configs

  Problem:    The build of the file prefix.o fails under certain versions
              of vxWorks when using Makefile.adalib to rebuild the GNAT run
              time.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Add #include "vxWorks.h" at the beginning of the prefix.c file.

KP-313a1-8411-006 "Goto next procedure" in Glide does not handle operators

  Problem:    The function to move the cursor to the next or previous
              subprogram in Glide doesn't work as expected with operators
              overloading, and ignores them.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Search forward or backward for the keywords "function" or
              "procedure".

KP-313a1-8408-007 Unchecked conversion of character literal on big endian

  Problem:    On big endian systems, if a character literal is the operand
              to an Unchecked_Conversion, the result will be zero.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Assign the literal to a temporary of the appropriate type.

KP-313a1-8408-002 Compiler crash on discriminated protected components

  Problem:    The compiler crashes on slices of array components of protected
              types, whose bounds depend on discriminants, when the bounds of
              the slice are given by attribute references.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use the protected discriminant explicitly in the expression
              for the bounds.

KP-313a1-8407-011  Core dump from gdb on variable display

  Problem:    Printing an array type whose index type is a base
              enumeration type, or printing a value of this type causes
              a segmentation fault.  

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Print the array in C mode.

KP-313a1-8404-009 Pragma Pack problem on MIPS R3000 systems

  Problem:    Certain packed records accesses result in invalid assembly
              code being generated when compiling using the -mips1 flag.
              This problem can be recognized by assembler errors regarding
              illegal operands for the 'usw' instruction

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Remove the pragma Pack and specify full record representation
              clauses.

KP-313a1-8404-006 JDK exception on selection of a field of an interface type

  Problem:    JGNAT is generating incorrect bytecode for a selection of
              a nondiscriminant access component that designates a Java
              Java interface type.

  Status:     This problem is corrected in JGNAT version 1.2.

  Workaround: Use an access component designating a noninterface type
              that can be converted to the desired interface type.

KP-313a1-8404-004 Wrong gnatprep output if # not first character of line

  Problem:    If # is not the first character of the line (but is the
              first non-blank character), then gnatprep correctly performs
              the associated processing, but in the output, the line is
              not recognized as a preprocessor line, causing it to be
              output unchanged.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Ensure that # is the first character of the line, or edit
              the output to remove or comment out such lines.

KP-313a1-8403-005 Misaligned reference to object with address clause on Alpha

  Problem:    On Alpha machines that do not support byte write instructions,
              if an object has an address clause and has an alignment
              smaller than 4, references to the object may be misaligned.

  Status:     This problem is corrceted in GNAT version 3.14.

  Workaround: Use renamings instead of address overlays.

KP-313a1-8401-011 Problem with AST parameter size on OpenVMS

  Problem:    A 64 bit parameter passed to an AST gets garbage in the
              high order 32 bits.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Pass only 32 bit parameters, e.g. the 32 bit address of
              a required 64 bit parameter.

KP-313a1-8401-010 Problem with gnat_malloc on Interix

  Problem:    Gnat_malloc on Interix can raise a Storage_Error in
              tasking programs when in fact there's plenty of memory.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use a storage pool to allocate directly using malloc.

KP-313a1-8401-008 Spurious error message with child unit with name of type

  Problem:    If a program has with_clauses on several sibling child units,
              one of which defines a type and another whose name is the name
              of that type, spurious type errors are emitted when compiling
              another sibling that with's the first.

  Status:     This problem is corrected in GDB version 3.14-19.

  Workaround: Avoid such confusing naming conventions.

KP-313a1-8401-002 Incorrect code on x86 with two-element aggregate

  Problem:    On x86 machines with -O2, there are some cases of two-element
              constant aggregates with one element zero will be passed to
              functions incorrectly.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Assign the aggregate to a temporary variable.
  
KP-313a1-8330-011 GDB "info tasks" caused error if program not running

  Problem:    Issuing an "info tasks" command when no program is running
              can cause a segment violation and GDB termination.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Be sure to issue a run command before using info tasks.

KP-313a1-8328-010 Command line length exceeded by linker in Win2K

  Problem:    Under Windows 2000 the linker command line length may be
              truncated. This makes the link step fail with undefined
              symbols. Note that this problem occurs only with Windows
              2000, not Windows NT.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use GCC/Ld response file facility to workaround this
              limitation.

KP-313a1-8327-007 Problem with style checks and inlining

  Problem:    If a unit is compiled using the -gnatn and -gnaty (inlining
              and style checking options), then the inlined body is checked
              for style errors, which is incorrect, since -gnaty should
              affect only the unit being compiled.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid the use of these two switches together if unexpected
              style errors are encountered from inlined bodies.

KP-313a1-8326-002 ASIS Context takes too much time to get opened

  Problem:    If an ASIS Context contains a unit which depends semantically
              upon a large number of other units (hundreds) opening such a
              Context may take an excessive amout of time.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: The open of the context will succeed, so simply allow enough
              time for it to complete.

KP-313a1-8325-006 NT GDB cannot switch to specific task.

  Problem:    NT GDB cannot switch to a specific task (using gdb task command)
              A message "cannot access memory at address xxx" is displayed.

  Status:     This problem is corrected in GDB version 3.14-19.

  Workaround: Avoid use of the task switching commands. Use breakpoints
              instead to create the proper task context for gdb use.

KP-313a1-8325-002 NT compiler not finding runtime libraries

  Problem:    In some complex cases (for example during GNAT bootstrap), GNAT
              may fail to find startup code (crt2.o, dllcrt2.o or gcrt2.o)
              and runtime libraries (libkernel32.a, libmsvcrt.a, libmoldname.a,
              libadvapi.a and libmingw32.a).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: This should happen only during GNAT bootstrap. Just place the
              startup object and the libraries in the working directory.

KP-313a1-8324-010 Stack Checking fails on HP-UX 11.0 pthread

  Problem:    Stack Checking does not work correctly on HP-UX 11.0 with the
              alternate GNAT run time based on the pthread library.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use DCE threads or disable stack checking.

KP-313a1-8321-003 GLIDE doesn't compile correctly on NT

  Problem:    When using the default cmdproxy.exe shell on NT, GLIDE does
              not compile the application correctly.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Replace the multi-lines commands in the project file by one
              single-line command, separating one from another with " && "

KP-313a1-8317-009 Printing nested variant types in GDB causes error 

  Problem:    Attempting to print certain kinds of nested variant records
              using ptype may cause the following message to be output:
              warning: internal error: unhandled type in ada_print_scalar
              
  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: The internal error is not a crash; printing continues, but
              with some information missing.  Type printing in C mode still
              works for these types, if one is prepared to interpret the 
              Ada-specific encodings.

KP-313a1-8316-001 Crash on accept statement in delay alternative

  Problem:    Compiler crashes on an accept statement that appears in the
              statement part of a delay alternative, if the statement list
              of the accept contains only null statements.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Remove useless statement part from accept statement.

KP-313a1-8315-012 Incorrect allocation length with sized variant record

  Problem:    If there is a variant record which has a size clause
              and an object of that type is allocated using a
              qualified expression, the amount of memory allocated
              is the size of the record not including the padding
              required by the size clause, but the amount of data copied
              properly reflects the size clause (causing memory corruption).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do the allocation and assignment in separate statements.

KP-313a1-8315-007 Incorrect code on constant assignment of aggregates

  Problem:    If a variable of aggregate type which is marked constant is
              initialized to be the result of a function and there is another
              variable of the same type that is not a constant and which is
              initialized from an aggregate, improper code may be generated
              on some machines in rare cases.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Remove the "constant" from the first variable.

KP-313a1-8315-002 Spurious error on access discriminants for derived type 

  Problem:    If a limited record with discriminants T1 is derived into a
              constrained type T2, the compiler rejects a derivation of T2
              that introduces an access discriminant.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Introduce an unconstrained derived type first, and make T2
              into its subtype.

KP-313a1-8313-008 ASIS problem with incomplete trees

  Problem:    Some ASIS and ASIS DDA queries may blow up when
              the tree file being accessed is created for a subunit.
              Some semantic queries may return null results if the Context
              is based on tree files resulted from some arbitrary
              sequence of file-by-file compilations.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Use gnatmake to create a minimal set of trees covering
              a given program (see ASIS UG for more details)

KP-313a1-8308-005 Bad use of -o in gnatmake and gnatbind not detected

  Problem:    If the last argument in a gnatmake or gnatbind command is
              -o (with no following file name), then the argument is
              ignored and no diagnostic is issued.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Avoid this incorrect command format

KP-313a1-8308-005 Help switch -h not working in gnatbind

  Problem:    The -h switch in gnat bind does not generate usage/help
              information as documented.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Enter gnatbind with no arguments at all to generate help.

KP-313a1-8303-011 ASIS Corresponding_Name_Definition blows up on ASCII

  Problem:    Asis.Expressions.Corresponding_Name_Definition blows up
              when applied to the references to the type Standard.Character
              which are subtype marks in the constant declarations in
              package ASCII

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Before applying Corresponding_Name_Definition check
              that the argument is not An_Identifier element being a part
              of ASCII. If the check fails, create the result of the
              call manually.

KP-313a1-8307-007 Problem with multiple arguments on SGI O32

  Problem:    If a function call contains a large number of operand bytes
              on SGI O32 systems and one of the later operands contains a
              call to a function that returns an unconstrained array,
              the earlier operands may be passed incorrectly.

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: Compute the expressions involving calls to functions that return
              unconstrained arrays into temporary variables.

KP-313a1-8301-004 Problem with multiple Out parameters and unaddressable actual

  Problem:    If a procedure has an In Out parameter of an aggregate type
              and also an Out (or In Out) parameter of a scalar type and the
              caller passes a component selector for the actual parameter
              of the aggregate type where the component specified is a
              part of a packed record that is not at its natural alignment,
              the actual parameter will not be updated when the procedure
              returns.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Make an explicit temporary variable for the field, pass it to
              the procedure, and copy the temporary to the field after the
              procedure call.

KP-313a1-8230-014 Incorrect code for multiple out parameters on SGI n32

  Problem:    On SGI targets using the n32 abi, if a subprogram with two out
              Boolean parameters is called specifying local variables as the
              actual parameters and then is immediately followed by a test of
              the variable corresponding to the second parameter, the test may
              actual test the OR of the two parameters instead, if -O1 or
              higher was specifed on the command line.

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: Rewrite so one of the conditions above is not present or
              compile the affected module with -O0.
   
KP-313a1-8230-013 Configuration pragmas not treated correctly by gnatchop

  Problem:    In the case where configuration pragmas appear between units
              in the gnatchop input, they are not always correctly recognized
              as belonging only to the following unit. This is not really
              allowed by the RM if you regard gnatchop as processing a
              compilation (and use the -c switch), but it is useful if
              gnatchop is simply being used to separate units.

  Status:     This problem is fixed in GNAT version 3.14

  Workaround: Do not put configuration pragmas between units when using
              gnatchop. Put configuration pragmas in gnat.adc.

KP-313a1-8230-008 Under NT DST change trigger recompilation of units

  Problem:    The timestamp under NT is not immune against daylight savings
              time changes. This was due to the use of the C runtime function
              "stat" which does use DST to adjust the time values.

  Status:     This problem is fixed in GNAT version 3.14

  Workaround: Use the gnatmake -m (minimal recompilation) option to avoid
              recompilation of units. Note that the recompilation happens
              only once in any case.

KP-313a1-8230-005 Problem with preelaborate and imported private constants

  Problem:    A private object (e.g. aon object of type System.Address) that
              is Imported is not allowed in a preelaborable package. The RM
              is not completely clear here, but it does seems reasonable to
              allow this on the grounds that the object in question is not
              default initialized, because pragma Import has the effect of
              inhibiting default initialization.

  Status:     This problem is fixed in GNAT version 3.14

  Workaround: Replace the object with an imported function that returns
              the value of the object and an imported procedure to set
              the value of the object.

KP-313a1-8228-001 Problem with -gnatD if main source not in current directory

  Problem:    The compiler blows up (either with an exception or a fatal
              signal) if the -gnatD switch is used, and the main program
              is not in the current directory (e.g. tmp/hello is compiled).

  Status:     This problem is fixed in GNAT version 3.14

  Workaround: Make sure the unit being compiled is in the current directory
              if the -gnatD switch is used, or avoid the use of this option.

KP-313a1-8227-011 Compiler hangs on internal call in All_Calls_Remote package

  Problem:    The compiler loops when processing a function call in a package
              body, when the pragma All_Calls_Remote appears in the spec, and
              the called subprogram is declared in the body.

  Status:     This problem is fixed in GNAT version 3.14

  Workaround: Move the function declaration to the package declaration.

KP-313a1-8227-009 Failure to diagnose improper extended Export pragma use

  Problem:    It is not allowed to export inner nested procedures. This check
              is properly made for pragma Export itself, but not for the
              extended pragmas such as Export_Procedure.

  Status:     This problem is fixed in GNAT version 3.14

  Workaround: Do not attempt to export inner nested procedures.

KP-313a1-8221-002 gnatmake fails when gnat.adc has syntax errors.

  Problem:    gnatmake fails with INTERNAL_ERROR when there are syntax error(s)
              in gnat.adc, such as declarations that are not pragmas.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Correct syntax errors in gnat.adc.

KP-313a1-8221-001 Bit_Order attribute gives wrong results

  Problem:    The Bit_Order attribute yielded the wrong result in the case
              where a Bit_Order attribute definition clause is used to
              set the non-default bit order.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Since this attribute reference simply reflects the explicitly
              set value in this case, replace the attribute reference with
              the appropriate value.

KP-313a1-8219-010 Restriction pragmas propagated incorrectly

  Problem:    If a with'ed package contains explicit Restrictions pragmas,
              then a client picks up the restriction. Normally this is not
              a problem, since most restrictions are partition-wide in any
              case, but for those that are not (No_Elaboration_Code for
              example), this can result in incorrect violation diagnostics.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Put the restrictions pragmas in a gnat.adc file, and make
              sure that each unit is compiled with the appropriate set of
              restrictions in this file.

KP-313a1-8219-003 Incorrect warnings if -gnatwl and -gnatE used together

  Problem:    If the options -gnatE and -gnatwl are used together, then
              GNAT outputs spurious warnings suggesting the need for
              Elaborate_All pragmas that are not in fact required for
              elaboration purposes.

  Status:     This problem is fixed in GNAT version 3.14

  Workaround: Do not use these options together, use -gnatwl without -gnatE
              for the purpose of generating the correct set of warnings.

KP-313a1-8217-002 JGNAT problem on large subprograms with case statements

  Problem:    An Assert_Failure exception is raised when compiling
              subprograms containing case statements if the subprogram
              requires 32-bit branch offsets.

  Status:     This problem is corrected in JGNAT version 1.2.

  Workaround: Split up large subprograms containing case statements
              so as to avoid long branches.

KP-313a1-8215-007 ASIS problem with returning private subprograms

  Problem:    Asis.Definitions.Implicit_Inherited_Subprograms returns
              subprograms declared in the private part of the package
              where the parent type is declared even in case if the
              derived type is declared outside this package

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Manually check if private subprograms returned by
              Implicit_Inherited_Subprograms are inherited by the
              argument derived type

KP-313a1-8214-001 Problem with ASIS Implicit_Inherited_Subprograms

  Problem:    Asis.Definitions.Implicit_Inherited_Subprograms blows up
              on a private extension definition

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Compute the result by manual traversing of the code

KP-313a1-8212-001 Compiler blowup from Ada 83 subprogram pointer idiom

  Problem:    The idiom of using an address clause and an import pragma for
              a subprogram was common in Ada 83 where for most compilers it
              works to simulate subprogram pointers this way. GNAT supports
              this usage, but the compiler could blow up on some targets
              if debugging information (-g) was being generated.

  Status:     This problem is fixed in GNAT 3.14

  Workaround: Compile without debugging information, or replace this usage
              by the cleaner method in Ada 95 of using access subprogram
              types and values.

KP-313a1-8210-010 Blowup on VMS in outputting error message from binder

  Problem:    In VMS only, a binder blowup may result in trying to
              output a message for a file name containing an upper case
              letter O (resulting in an infinite loop).

  Status:     This problem is fixed in GNAT 3.14

  Workaround: Correct the error causing the binder to complain, or avoid
              the use on VMS of files names containing an upper case O.
              This only affects error message output, functioning of
              correct programs is not affected.

KP-313a1-8210-006 gnathtml incorrect outputs '>' and '<' characters

  Problem:    The character '>' becomes '&amp;gt;' in the output html, and
              thus displays incorrectly.

  Status:     This problem is fixed in GNAT 3.14

  Workaround: Modify the generated html files by hand to transform
              '&amp;gt;' into '&gt;'

KP-313a1-8210-004 Problem with ASIS Corresponding_Type

  Problem:    Asis.Declarations.Corresponding_Type returns a type declaration
              instead of type definition.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Check the result of the query and then decompose it into a
              type definition, if needed.

KP-313a1-8209-006 Incorrect handling of -p switch when -gnatE not used

  Problem:    Normally the use of the -p switch does not make sense unless
              you are using dynamic elaboration checking (-gnatE switch
              for compiler). If the -p switch is used with static elaboration
              checking (-gnatE not used), then implicit Elaborate_All pragmas
              are ignored, and this can lead to undetected access before
              elaboration errors.

  Status:     This problem is fixed in GNAT 3.14.

  Workaround: Avoid the use of -p when -gnatE is not used, or add explicit
              Elaborate_All pragmas (using the -gnatwl switch).

KP-313a1-8208-005 Style checks not disabled in with'ed generic bodies

  Problem:    Style checks (-gnaty) are not supposed to apply to with'ed
              units, only to main units. This is generally true, but is
              not true for the case of generic bodies in with'ed units.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Ensure that the generic body meets style check requirements,
              or use pragma Style_Checks to disable style checks in the
              generic body.

KP-313a1-8205-019 Compiler crash on illegal call to procedure in task

  Problem:    Compiler crashes when a procedure declared in a task body is
              invoked with the syntax of an entry call, and there is no
              visible entry with the same name.

  Status:     This problem is fixed in GNAT 3.14.

  Workaround: Do not write such illegal calls.

KP-313a1-8205-017 Failure to diagnose rep. clause on incomplete type

 Problem:     Compiler accepts a representation clause on a record that has
              a private component without a corresponding full view.

  Status:     This problem is fixed in GNAT 3.14.

  Workaround: Place representation clause after full type declaration.

KP-313a1-8205-005 Incorrect declarations in [Wide_]Constants packages

  Problem:    Packages Ada.Strings.Constants, Ada.Wide_Strings.Wide_Constants
              contains local abbreviation declarations (for L and W) that are
              not in the RM. These should be in the private part.

  Status:     This problem is fixed in GNAT 3.14.

  Workaround: Do not reference these entities. If a client needs these same
              package abbreviations, declare them locally.

KP-313a-8204-009 Compiler loops on type derived from formal discrete type.

  Problem:    GNAT loops on a full declaration for a private type, that is a
              type derivation of a generic formal discrete type.

  Status:     This problem is fixed in GNAT 3.14.

  Workaround: Use a subtype declaration instead of a private type declaration,
              and remove the derivation.

KP-313a1-8203-012 Interfaces.VxWorks not compiled in the GNAT library

  Problem:    The file i-vxwork.ads distributed in the GNATWorks product
              is not compiled in the GNAT library.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Compile the file i-vxwork.ads by hand using either
              gcc -c -gnatpg i-vxwork.ads, or using gnatmake -a.

KP-313a1-8203-010 JGNAT problem on large subprograms with case statements

  Problem:    An Assert_Failure exception is raised when compiling
              subprograms containing case statements if the subprogram
              requires 32-bit branch offsets.

  Status:     This problem is corrected in JGNAT version 1.2.

  Workaround: Split up large subprograms containing case statements
              so as to avoid long branches.

KP-313a1-8202-007 Problem with equality comparison.

  Problem:    If a comparison is done between two array objects and one of the
              array objects has a lower bound of Integer'First, the comparison
              may incorrectly return False.

  Status:     This problem is fixed in GNAT 3.14.

  Workaround: Avoid array types whose lower bounds can be Integer'First.

KP-313a1-8129-004 gnatmake -M showing dependancies on the GNAT runtime.

  Problem:    The gnatmake -M option (which creates a dependancy list
              suitable for Makefiles) always includes the dependancy on GNAT
              internal files without considering the presence or absence of
              the "-a" switch.

  Status:     This problem is fixed in GNAT 3.14.

  Workaround: Use gnatls -d -s to generate equivalent information and
              manually process it into the desired form.

KP-313a1-8127-005 Storage_Error with zero-length discriminated record field.

  Problem:    If there is a record type that has multiple discriminants, one
              of whose types does not include any negative values, two fields
              in the record have sizes that depend on the the values of the
              discriminants, and the first of such fields has an upper bound
              that is the value of the non-negative discrimiant and a subtype
              is formed of that record type with the value of the discriminant
              mentioned above being zero and the size of the first field is
              also zero, the compiler may generate code (and a warning)
              to generate Storage_Error when an object of that subtype is
              elaborated.

  Status:     This problem is fixed in GNAT 3.14.

  Workaround: Avoid any one of the conditions listed above.

KP-313a1-8126-018 Categorization dependencies with generic units not enforced.

  Problem:    The compiler does not reject a categorized unit that depends on
              a generic unit with weaker categorization.

  Status:     This problem is fixed in GNAT 3.14.

  Workaround: Verify manually that categorization dependencies are correct.

KP-313a1-8124-005 Problem with file text translation on streams under Windows.

  Problem:    When writting the number 10 on a stream (using 'Write
              stream attribute), the bytes 13 and 10 get written. This
              problem occurs only under Windows 95/98/NT/2000 for files
              written in text mode.

  Status:     This problem is fixed in GNAT 3.14.

  Workaround: Use Stream_IO rather than Text_IO to write stream files.

KP-313a1-8122-009 Explicit size of zero not diagnosed properly.

  Problem:    If the size of an array or record is explicitly set to zero,
              the compiler ignores the specification, rather than giving
              a diagnostic in cases where a size of zero is impossible.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid specifying an incorrect size of zero for non-null
              records or arrays.

KP-313a1-8122-007 Incorrect parsing of line numbers in gnatfind

  Problem:    Gnatfind does not filter its output correctly when you
              specify a line number with a single digit on the command
              line. Instead of getting only the references for the entities
              defined at the line/column, you get all the entities with the
              same name

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Use line numbers with at least two digits, as in "02" instead
              of "2".

KP-313a1-8122-003 Compiler crash on renamed discriminant.

  Problem:    Compiler crashes in an instantiation, on a renamed discriminant
              of a formal parameter whose type is an actual in the instance.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use selected component notation instead of local renaming.

KP-313a1-8121-019 Pragmas Volatile and Atomic ignored on field

  Problem:    Except for for validity checking, Pragmas Atomic and Volatile
              are ignored for fields in records.

  Status:     This problem is fixed in GNAT 3.14.

  Workaround: Make the entire record type volatile.

KP-313a1-8121-016 Compiler crash on overloaded prefix.

  Problem:    Compiler crashes on a selected component whose prefix is a
              parameterless function call that is overloaded, when component
              appears in a conditional.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Declare local constant whose value is the selected component,
              and use constant in conditional.

KP-313a1-8121-012  incorrect resolution of constant modular expression

  Problem:    Compiler rejects a named number declaration of a modular type,
              when a subexpression's operands are integer literals.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Replace the subexpression with its value.

KP-313a1-8120-008 spurious error on actual subprogram that is a dereference

  Problem:    If an actual for a formal subprogram is an explicit dereference
              of an access_to_subprogram value, the compiler may emit an
              error message concerning missing actuals in a call.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Introduce a new subprogram as a renaming of the dereference,
              and use that subprogram as the actual in the instantiation.

KP-313a1-8120-005 Optimization causes crash for signed rem/mod

  Problem:    If a program contains a rem or mod operator which takes
              two signed full range operands, then the optimizer can
              crash in -O2 or -O3 mode on the x86.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Compile the affected unit in -O1 mode, or assure that
              at least one of the operands has a static subtype that
              excludes negative values.

KP-313a1-8113-004 Spitbol.Patterns.Image bombs on assignment pattern

  Problem:    Spitbol.Patters.Image crashes if used on a pattern that
              contains an assignment operator (* or **).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid the use of the image function on such patterns. Image
              is only intended for debugging purposes in any case.

KP-313a1-8113-002 Use of System'To_Address causes bad -gnatwu warning

  Problem:    If the only reference to System is the use of the attribute
              System'To_Address, then -gnatwu complains that no entities
              are referenced from package System (when in fact Address is
              implicitly referenced by this attribute).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid the use of -gnatwu on such a unit, or introduce a
              dummy explicit reference to type System.Address.

KP-313a1-8112-007 Output from gnatprep incompatible with -gnatyb style check

  Problem:    If the -c switch is used on gnatprep, then blank lines are
              generated with a trailing blank, which is incompatible with
              the style warnings of -gnatyb (or -gnaty).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Either avoid the use of the -c switch for gnatprep, or
              compile the result without -gnatyb (either avoid the
              use of -gnaty, or specify a set of style checking options
              that does not include -gnatyb).

KP-313a1-8111-002 Incorrect gdb display for field with component clause

  Problem:    Certain record components display incorrectly because GDB
              uses the wrong type length to fetch their data.  The problem
              shows up most reliably on big-endian machines.  On little-endian
              machines, one can get various effects depending on record
              layout and packing.

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: Raw data displays such as x/x y.f'address still work. If you
              know of an integer type T that has the right length, then
              the cast T(y.f) will yield a correct result.

KP-313a1-8109-003 Win32 LargeInteger binding not correctly supported

  Problem:    Some units in Win32.Crt.Largeint are not correctly defined.
              Use of Win32.Crt.largeint results in a failure of the link
              step because of undefined symbols.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use alternative facilities for large integer handling,
              or alternatively, define the necessary bindings to the
              Win32 routines in question directly.

KP-313a1-8108-005 Wrong indentation of aggregates in Glide

  Problem:    Line after a '=>' in an aggregate are incorrectly indented in
              Glide (they do not have an additional space at the beginning).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Manually add extra spaces at the beginning of the line

KP-313a1-8106-008 Compiler crash from unreferenced variable warning

  Problem:    If an object has a redundant type conversion to its own type,
              and if the reference is potentially to an uninitialized
              variable, the compiler may crash trying to post a warning.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Correct the situation leading to the warning, or compiler
              with warnings suppressed, or remove the redundant type
              conversion.

KP-313a1-8106-007 Unnecessary temporary when alignment increased

  Problem:    If -fstack-check is used and a temporary of a type whose size
              is constant but large is needed, that temporary can cause
              a warning to appear stating that the stack frame is too
              large for reliable stack checking.  In some cases where the
              alignment of records are increased with an alignment clause,
              this temporary is not actually necessary.

  Status:     GNAT version 3.14 will avoid allocating a temporary in some of
              these cases where they are not necessary.

  Workaround: Avoid increasing the alignment of a large record when
              using -fstack-check.

KP-313a1-8104-006 gnatfind can not handle files with more than 400 dependencies

  Problem:    Processing an ali file with more than 400 dependencies may
              cause gnatfind and gnatxref to raise Storage_Error.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Create a small wrapper that first write-protects the ALI
              file, which won't be read by gnatfind, and the restores it
              to its default mode. Do not use the -a switch for gnatfind.

KP-313a1-8102-003 Compiler crash with Pragma Atomic

  Problem:    If Pragma Atomic is specific on an object that has been
              allocated indirectly (for example, because it has an
              Address clause), the compiler will crash trying to validate
              the pragma.

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: Do not use Pragma Atomic on such objects; instead use
              pragma Volatile and manually ensure that the object and
              its type are atomic.

KP-313a-8101-004 Improper visibility of entities in child instantiation

  Problem:    In an instantiation of a child unit, entities from parent
              units may become visible in the actuals of the instance.

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: Do not use parent entities in the generic associations for
              the instance.

KP-313a1-8030-011 Storage leak from Ada.Strings.Wide_Unbounded

  Problem:    The implementation of Ada.Strings.Wide_Unbounded can
              cause storage leaks, since storage is not properly
              reclaimed on assignments and scope exit.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: If the storage leak is a problem, consider using encoded
              strings with Ada.Strings.Unbounded, or instead use
              Ada.Strings.Wide_Bounded.

KP-313a1-8030-009 Incorrect direction of output for gnatbind -e switch

  Problem:    The output generated by use of the -e switch in gnatbind
              should all go to stdout, but it currently is mixed with
              most of the output to stderr, but some blank lines to stdout,
              causing difficulties when this output is redirected.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Redirect both stderr and stdout when using the -e switch
              for gnatbind if redirection is required.

KP-313a1-8030-006 Incorrect detection of absolute directories in NT GLIDE

  Problem:    On NT, GLIDE considers all the paths given in the project
              file as relative paths, and thus adds the value of build_dir
              in front. As a result, the environment variables are
              incorrectly set before a compilation, which will fail.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Do not use drive specifications (c:) at the front of your
              paths. Consider instead using directly a path that starts
              with '/'.

KP-313a1-8030-006 GLIDE doesn't change drives when compiling on NT

  Problem:    If a directory including drive specification is used in the
              project file on NT, GLIDE can not change to this directory if
              the shell used is the default cmdproxy.exe shell.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Replace all the "cd" commands with "cd /d"

KP-313a1-8030-002 Crash on dereferencing Java-convention array accesses

  Problem:    The compiler crashes on an attempt to dereference an access
              object denoting an array when the access type has convention
              Java and the access object has a nominal subtype that renames
              the access type.

  Status:     This problem is corrected in JGNAT version 1.2.

  Workaround: Eliminate the use of subtype renamings of Java-convention
              access-to-array types.

KP-313a1-8030-001 Crash on instantiation with entry actual

  Problem:    The compiler crashes if the actual for a formal subprogram is
              an entry, and the corresponding task body has not been seen
              yet.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Move instantiation past the task body, or introduce dummy
              procedure renamings for the entries, and use those procedures
              as actuals.

KP-313a1-8029-009 Spurious error on indexing of array with modular index

  Problem:    GNAT rejects an index that is a boolean operation, if the prefix
              is a subtype of an array whose index type is a modular integer
              type.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Qualify the expression with the index type.

KP-313a-8126-014 GDB crashes on certain array types

  Problem:    Under certain circumstances, GDB on HPUX 10 or HPUX 11
              platforms crashes when attempting to print arrays indexed
              by enumeration types.

  Status:     This problem is corrected in GDB version 3.14.

  Workaround: Display the memory areas manually by address.

KP-313a1-8025-007 Crash with deeply nested instantiations

  Problem:    Compiler crashes analyzing a default formal subprogram in an
              instantiation of a nested generic, when the default comes from
              an instantiation of an enclosing unit several levels out.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Make actual subprogram explicit.

KP-313a1-8025-001 Bad Ada.[Wide_]Text_IO.Name values for standard files

  Problem:    If the Name function of Ada.Text_IO or Ada.Wide_Text_IO is
              called on one of the standard files, the name was truncated.
              The names are intended to be ("*stderr", "*stdin", "*stdout")
              but the last character was missing.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: In the unlikely event that a program was counting on specific
              names to be returned (there is no portable specification for
              the names in any case), then change the expected string
              to eliminate the last character.

KP-313a1-8023-001 Spurious error with renamings of child units

  Problem:    If the prefix in a with_clause is a renaming of a child unit,
              references to entities declared in grandchildren may trigger
              visibility errors.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use original name of child unit as prefix in with_clause.

KP-313a1-8018-014 GNAT.Threads is not in the compiled run-time library

  Problem:    The sources of g-thread.ads and g-thread.adb are present in
              the run-time library and documented in the GNAT RM, but due
              to an error in the makefile, the compiled version is not
              present in the run-time library.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Copy the files g-thread.ads and g-thread.adb to the local
              build directory and compile using the -gnatg switch. Then
              you can with GNAT.Threads in the usual manner.

KP-313a1-8018-013 GNAT.Lock_Files is not in the compiled run-time library

  Problem:    The sources of g-locfil.ads and g-locfil.adb are present in
              the run-time library and documented in the GNAT RM, but due
              to an error in the makefile, the compiled version is not
              present in the run-time library.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Copy the files g-locfil.ads and g-locfil.adb to the local
              build directory and compile using the -gnatg switch. Then
              you can with GNAT.Lock_Files in the usual manner.

KP-313a1-8018-006 Confusion in debugging caused by cleanup procedure

  Problem:    GNAT in some cases generates internal cleanup procedures
              called "_clean". These are generated with debug information
              that in some cases conflicted in a confusing way with actual
              source debugging information.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Ignore procedures whose name is _clean while debugging, they
              provide no useful debugging information.

KP-313a1-8015-003 Spurious error messages when object renaming is attribute

  Problem:    If the renamed object in an object renaming declaration is
              an attribute reference 'Value, the compiler emits a spurious
              error on illegal conversion.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use an object declaration instead, whose expression is the
              attribute reference.

KP-313a1-8014-003 Wrong file reported by gnatchop for duplicated unit

  Problem:    If gnatchop is used with multiple file arguments, and a unit
              appears in more than one file, the error message identifes
              the wrong file for the duplicated unit.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Run gnatchop separately on each file (if necessary using a
              simple script, e.g. to get the effect of *.ada), then the
              message will correctly identify the offending file.

KP-313a1-8010-011 ASIS problem with of library-level instantiations of intrinsic subprograms (2)

  Problem:    ASIS can not see a compilation unit which is the
              result of library-level instantiation of an intrinsic
              subprogram. See also KP-313a1-8010-006.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Wrap the library level subprogram instantiation in a package.

KP-313a1-8010-009 Spurious overloading error with constant declaration

  Problem:    If a constant declaration has a homograph that is an inherited
              subprogram, the compiler reports an error.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Use a different name, or declare a variable instead of a
              constant.

KP-313a1-8010-008 Assertion exceptions using nested protected calls in JGNAT

  Problem:    Assert_Failure is raised in Abort_Defer when making
              external protected entry calls from within a protected
              operation. Note that such calls constitute a bounded
              error, but Assert_Failure is not a permissible result.

  Status:     This problem is corrected in JGNAT version 1.2.

  Workaround: Avoid calls to potentially blocking operations. Alternatively,
              rebuild the JGNAT library without using -gnata. Note that the
              expected result in all versions of GNAT is simply to go ahead
              with the call, this may of course result in deadlock in some
              cases as described in the reference manual.

KP-313a1-8010-006 ASIS problem with of library-level instantiations of intrinsic subprograms (1)

  Problem:    ASIS semantic queries blow up when applied to the Elements
              which are the results of library-level instantiations
              of intrinsic subprograms. See also KP-313a1-8010-011.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Wrap the library level subprogram in a package.

KP-313a1-8009-005 Incorrect translation of INLINE=SUPPRESS on VMS

  Problem:    The switch INLINE=SUPPRESS is translated to -fno-linline
              instead of -fno-inline using the VMS command line processor.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Use the switch -fno-inline directly instead of
              /INLINE=SUPPRESS in the command line.

KP-313a1-8009-003 Rejected size clause for aliased unconstrainted objects

  Problem:    If a Size clause is specified for an aliased array object whose
              type is unconstrained (meaning an initialing value must have
              been specified), the size clause will be rejected unless
              it includes the size of the template to describe the object.

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: Either avoid such Size clauses or include the size of the
              template (the sum of twice the size of the base type of each
              of the array indices).

KP-313a1-8007-002 Compiler crashes on integer * real_literal in conversion.

  Problem:    If a mixed-mode operation is the expression in a conversion,
              and there is a local declaration with the name Duration, the
              compiler crashes rather than emitting a warning.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Qualify the real literal with the proper fixed-point type.
              The implicit use of Duration is almost invariably an error.

KP-313a1-8004-003 Minor formatting problem in style checking option

  Problem:    The error flag for a missing space before a left parenthesis
              in style checking mode is placed one column too early.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: When using style checking, if you get the message suggesting
              that a space is missing, be aware that it may apply to the
              character after the point where the message is posted.

KP-313a1-8003-004: Undetected error in record rep clause

  Problem:    GNAT does not permit the placing of most aggregates at
              locations within a record that are not at byte boundaries, but
              but did not detect all instances of such when the aggregate was
              an array.  This could cause unaligned references.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid such representation clauses.

KP-313a1-8003-001 Loading element of a byte array sign extends in unsigned case

  Problem:    Evaluating a component of an array of modular (unsigned) bytes
              results in sign extension for values greater than 127, producing
              incorrect values.

  Status:     This problem is corrected in JGNAT version 1.2

  Workaround: Use an array of unsigned values where the component type's
              upper bound is greater than 255 (or use any integer component
              type that requires more than eight bits).

KP-313a1-8002-007 Xref does not work for non-standard file names in GLIDE

  Problem:    It is not possible to use cross-references when working with
              non-standard file names and the bodies and specs are in different
              directories.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Put the specs and bodies in the same directories (or at least
              links on Unix systems)

KP-313a1-8002-002 Assert_Failure compiling access conversion in address context

  Problem:    The front end expands addresses of access objects passed
              as out parameters to an inherited procedure into a conversion
              to the parent access type and the JGNAT back end does
              not support access conversion in an address context.

  Status:     This problem is corrected in JGNAT version 1.2.

  Workaround: Avoid calls to an inherited procedure for a derived access type
              where the procedure has an out parameter of the access type.

KP-313a1-8001-007 Memory leak in GNAT.OS_Lib.Spawn procedure

  Problem:    Dynamic memory allocated for passing program name and
              arguments is not freed when the procedure returns.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Directly interface with the operating system facilities for
              invoking other programs if Spawn is called often enough for
              this memory leak to be needed.

KP-313a1-7931-005 Enumeration literals have incorrect suffix in GDB

  Problem:    Certain enumeration literals (those appearing in nested
              packages declared within a package body), have Xb appended
              to the name, and this suffix is visible in GDB.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: This only affects GDB. Where necessary, add the suffix when
              entering these enumeration literal names, and ignore it in
              output generated by GDB.

KP-313a1-7927-006 Potential memory leak with classwide controlled functions

  Problem:    The anonymous object holding the result of a function
              returning a class wide value containing controlled components
              is not always finalized. When the controlled component is an
              unbounded string this problem can result in a memory leak.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid use of the above mentioned construct in a loop.

KP-313a1-7927-001 Problem with -pg and nested subprograms in HP/UX

  Problem:    Programs compiled with -pg switch and which have nested
              subprograms are miscompiled on HP/UX.

  Status:     This problem is fixed in GNAT 3.14.

  Workaround: This problem makes it impossible to use gprof with GNAT 3.13
              on HPUX. Other performance tools may work correctly.

KP-313a1-7926-015 Corresponding_Name_Definition problem

  Problem:    ASIS.Expresssions.Corresponding_Name_Definition blows up
              when processing An_Identifier which is a part of
              a parameter specification from an implicit procedure
              declaration.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use Corresponding_Name_Definition for such
              identifiers

KP-313a1-7926-013 Corresponding_Name_Definition problem

  Problem:    ASIS.Expresssions.Corresponding_Name_Definition blows up
              when processing An_Identifier within A_COMPONENT_CLAUSE
              in case if the corresponding record type is the full
              view of some private type

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use Corresponding_Name_Definition for such
              identifiers

KP-313a1-7926-012 Corresponding_Name_Definition problem

  Problem:    Asis.Expressions.Corresponding_Name_Definition blows up
              when processing An_Identifier within a Name_Default of
              a formal function declaration.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use Corresponding_Name_Definition for such
              identifiers

KP-313a1-7924-002 Compiler abort for misaligned discriminated record

  Problem:    If there is a record containing a field whose type is a
              discriminated record with a default value for the discriminant(s)
              and the field is not aligned at the natural boundary for the
              type, accesses to the field can cause a compiler abort (Gigi 999)
              in some cases.  This non-alignment can only occur if the outer
              record is either packed or has a record representation clause.

  Status:     In GNAT version 3.14 such a field will not be packed to
              less than the natural alignment and a representation clause
              that attempts to do so will be rejected.

  Workaround: Avoid the alignment situation described above.

KP-313a1-7923-001 Compiler crash on improper use of pragma Task_Storage.

  Problem:    Compiler crashes if an attribute reference 'Task_Storage
              has only one argument.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Provide both required arguments.

KP-313a1-7919-003 Incorrect results with constrained access to constants.

  Problem:    Improper code is generated for an allocator for a constant
              access to to a constrained array type, if the type mark in
              the allocator is the unconstrained base type.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use the constrained subtype (introduce a name for it if
              necessary) as a subtype mark in the allocator. Else remove
              the constant qualifier from the access type declaration. 

KP-313a1-7918-004 Incorrect handling of named parameters

  Problem:    If a call through an access to a protected subprogram has
              named associations, the parameters are not transmitted
              properly to the protected operation.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use positional notation for actuals in such a call.

KP-313a1-7913-006 Switches -aI and -aO not processed by gnatfind

  Problem:    When specifying directories on the command line with the -aI
              or -aO switches, gnatfind ignores them.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Put all the paths in the two environment variables
              ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.

KP-313a1-7910-002 Relative paths in project files not supported in gnatfind

  Problem:    If the project file given to gnatfind (-p switch) contains
              relative pathnames, then -f behaves differently depending on
              whether the project file is in the build directory or not.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use absolute paths in the project file.

KP-313a1-7909-001 Internal compiler error on HP PA-RISC.

  Problem:    In rare cases, GNAT will produce an internal error message
              which says that an "insn" is not valid.  In this case, the
              insn (which will be displayed in a LISP-like syntax) with
              a MEM whose operand is a PLUS of two REG operands.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Compile with -fno-strength-reduce.

KP-313a1-7908-003 Failure to reject illegal pragma.

  Problem:    GNAT fails to reject a pragma that mentions a predefined 
              operator.

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: The illegal pragma has no effect.

KP-313a1-7906-012 Incorrect visibility of inherited components

  Problem:    Components are improperly declared in certain cases
              involving types in child packages. In particular, when
              the full type of private extension declared in a public
              child package inherits components from the full type of
              a type declared in an ancestor package, type extensions
              declared in a sibling of the child are treated as having
              visible components inherited from the private extensions
              full type. Such components should never be declared for
              the sibling type.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not reference such components since they should
              not be visible, and do not declare a component that
              is a homograph of such an improperly inherited
              component (such a homograph will incorrectly be
              rejected because of the improperly inherited
              component).

KP-313a1-7906-011 Access type initialization skipped with address clause

  Problem:    If a variable of an access type has an address clause, then
              the variable is not initialized to null. Note that in some
              cases, the initialization may be undesirable. If this is the
              case use a pragma Import to suppress the initialization. Also
              note that a new feature ensures that a warning is given in
              this case (another new feature allows this warning to be
              selectively turned off).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Explicitly initialize the variable if such initialization
              is expected or required.

KP-313a1-7906-009 Spurious static constraint error on some concatenations.

  Problem:    If a concatenation has static operands but appears within a type
              conversion, or if one of the operands is a type conversion of a
              constant, and the resulting string is too large for the type of
              the context, the compiler treats the construct as an error and
              not as a warning.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not write such illegal (and seemingly static) concatenations.

KP-313a1-7906-008 Spurious error report on fixed multiplication

  Problem:    In a fixed-point operation of the form Fixed * Fixed * integer,
              the compiler fails to propagate the type of the context to the
              fixed multiplication.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use an explicit conversion on the first multiplication.

KP-313a1-7905-009 Problem displaying array of records of extended size.

  Problem:    If the size of a record type is increased by use of a 'Size
              attribute and that record type is used as the component of an
              array, GDB may be confused about the size of each element
              of the array.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Have the record size default and use a 'Component_Size attribute
              for the array.

KP-313a1-7905-008 Problems with restricted range fpt and elementary functions

  Problem:    Instantiation of the elementary functions package causes
              bogus warnings if the floating-point subtype in question
              has a very restricted range.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use the unconstrained base type in the instantiation.

KP-313a1-7905-001 Memory leak with entry formals with controlled components

  Problem:    If an entry formal is an array with controlled subcomponents,
              and an entry body constrains an assignment to a component of
              such an array, finalization is not properly applied to the
              controlled subcomponents.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Make the array component itself controlled (rather than just
              having a controlled component).

KP-313a1-7904-005 Incorrect additions to Ada.Exceptions

  Problem:    Some entites have been improperly added to Ada.Exceptions.
              This is an RM defined package which does not allow any
              additions. This can conceivably cause unexpected
              ambiguities or hiding if the same names are used in
              a user program.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: In the unlikely event that a name clash occurs, change
              the name in the user program to avoid the clash, or fully
              qualify the reference, or avoid USE on Ada.Exceptions.

KP-313a1-7830-013 Gigi 999 abort with -gnato on ia32

  Problem:    It is possible to get a Gigi 999 abort when compiling a
              program with -gnato on ia32 architectures for a 32-bit
              multiply of two variables.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Turn off -gnato. Alternatively, since this problem is
              related to register allocation, making small changes to
              the area in question may eliminate the problem.

KP-313a1-7830-009 Incorrect rounding in Ada.Text_IO.Editing

  Problem:    Under some circumstances, the result of a call to editing
              functions in Ada.Text_IO may not correctly round the result.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid situations requiring rounding, or correct the error by
              applying the following patch to line 1866 of file a-teiod.adb:
              line now:  R_Pos := Rounded'Length - R;
              should be: R_Pos := Attrs.End_Of_Fraction - R;

KP-313a1-7830-005 Cancel button in "save as" dialog for NT GLIDE doesn't work

  Problem:    The Cancel button in the GUI window opened when one selects the
              menu Files->Saves As on NT is handled triggers an error.

  Status:     This problem is corrected in GNAT version 3.14

  Workaround: Press ^G in GLIDE to interrupt the command, and then close the
              dialog.

KP-313a1-7829-010 Regular expressions do not detect eol in alternations

  Problem:    It is not possible to use the construction "|$" in a regular
              expression to match something OR the end of the line, since
              the latter is never detected in an alternations.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Change the regular expression to put the $ sign outside
              the alternation.

KP-313a1-7827-012 Spurious constraint error on aggregate in non static context

  Problem:    A spurious constraint error is raised at run-time on an object
              declaration whose expression is an aggregate, when the subtype
              indication has a non-static bound defined in a different unit,
              and the lower bound is not the lower bound of the index type.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Compile offending object declaration with checks off, by means
              of a pragma, or compile the unit with the -gnatp flag.

KP-313a1-7826-004 Incorrect keybinding in -platform mode for GLIDE on Windows

  Problem:    Even in -platform mode, some key bindings like [end] still have
              their default Emacs behavior ("end of file"), instead of the
              expected one ("end of line")

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Load the cua-mode manually, with the following commands in your
              .emacs file:  (load "cua-mode") (cua-mode)

KP-313a1-7823-003 Opening a stream file with Append_File causes overwriting

  Problem:    Using the Enum_Rep attribute on a character literal of type
              Character or Wide_Character causes a compiler abort.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use the Pos attribute instead. Enum_Rep is different from Pos
              only for enumeration types with non-standard representations.

KP-313a1-7822-003 Blow-up on illegal exponentiation for fixed point

  Problem:    Exponentiation with a real literal as the left operand
              in a fixed-point context causes a compile-time bomb
              rather than getting an error message.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Qualify the exponentiation with a floating-point type and
              convert to the fixed-point type.

KP-313a1-7821-013 Problem with setting character values in GDB

  Problem:    Character literals from enumeration types are not properly
              processed. In particular, the syntax TYPE'('x') causes a
              syntax error.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use the conversion TYPE(n) (no tick mark), where n is
              the 'POS value for the desired character literal.

KP-313a-7821-005 Missed style-check with -gnaty, -gnatyb or -gnatg

  Problem:    The style check for trailing blanks does not detect lines
              consisting of only blanks.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use an editor to find lines consisting of only blanks.

KP-313a1-7820-001 Incorrect debugging information for thin pointers in records

  Problem:    "Thin" pointers (unconstrained-array pointers that have rep
              clauses forcing them into the space of a single pointer) 
              are not properly designated as such in the debugging information
              output by GNAT, when they are the result of record rep clauses
              (debugging information is correct for those resulting from 
              size clauses on the pointer types themselves).  Such pointers,
              therefore, cannot be understood as thin pointers by GDB.

  Status:     This problem is corrected in GNAT version 3.14.  There was
              also a related debugger problem: see 7815-011.

  Workaround: A thin pointer value, z, points to the first element of
              an array, so this address can be used to access the
              data using an appropriate conversion.

KP-313a1-7815-011 Thin pointers are not processed properly in GDB

  Problem:    "Thin" pointers (unconstrained-array pointers that have rep
              clauses forcing them into the space of a single pointer) are
              not recognized as such and processed by GDB.

  Status:     This problem is corrected in GNAT version 3.14
              is also a compiler component: see also 7820-001.

  Workaround: A thin pointer value, z, points to the first element of
              an array, so this address can be used to access the
              data using an appropriate conversion.

KP-313a1-7814-014 Compiler crashes on some illegal string literals.

  Problem:    Compiler crashes on a string literal for a type that is an
              array of a character subtype whose character bounds are not
              static, when the literal contains characters not in the subtype.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Write string literal an an explicit aggregate.

KP-313a1-7814-012 Language change for Interfaces.C.Strings.Value.

 Problem:     Description of this function (ARM B.3.1(40)) is incorrect, and
              all uses raised Constraint_Error. This has been corrected in the
              ARG-approved AI-00177.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Add a null terminator explicitly to the string before using
              this function.

KP-313a1-7814-009 Missing discriminant checks on access to classwide subtypes.

  Problem:    Compiler does not apply discriminant checks to access parameters
              whose designated type is the classwide type of a constrained
              discriminated record.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Check discriminants of actuals explicitly.

KP-313a1-7813-010 Spurious visibility errors in complex child instances.

  Problem:    Compiler resolves names incorrectly when a unit contains an
              instantiation of a unit C followed by an instantiation of one
              of its child units, when the first instance has the same name
              as a type used in the second, and that type is used as the actual
              in a further nested instantiation where the formal appears in
              a record declaration and the type is controlled.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use the same name for the instance and for the type
              declared in the generic child unit.

KP-313a1-7813-003 The .ali file is inconsistent for subprogram instances.

  Problem:    The .ali file for a subprogram instantiation indicates that
              the unit is a package specification, not a subprogram.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: None required, this does not affect compilation. binding, or
              execution of Ada programs, even if the instance is the main unit.

KP-313a1-7809-011 Opening a stream file with Append_File causes overwriting

  Problem:    If a stream file is opened with mode Append_File, writes
              will occur at the beginning of the file rather than being
              appended at the end.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Call Reset or Set_Mode with mode Append_File immediately
              following the Open call.

KP-313a1-7808-004 Compiler crash on reference to discriminant of protected type

  Problem:    If a discriminated limited private type is completed with a
              protected type, the compiler crashes on a reference to a
              discriminant of a constrained object of the type.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Make the protected type non-private.

KP-313a-7808-001 Hang/Segmentation fault linking statically under IRIX

  Problem:    Linking a program with the static GNAT library under IRIX
              causes the program to apparently take for ever to run. It
              actually runs into completion, causing a segmentation violation.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Link dynamically or remove the exc_unwind.o symbol from
              libgnat.a since this is the symbol that causes the problem.

KP-313a1-7807-012 Float to fixed convertion turns a postive into a negative

  Problem:    Under GDB a positive fixed number converted from float number
              can be printed as a negative number.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Print the number in absolute hexadecimal format.

KP-313a1-7804-002 Opening a stream file with Append_File causes overwriting

  Problem:    If a stream file is opened with mode Append_File, writes
              will occur at the beginning of the file rather than being
              appended at the end.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Call Reset or Set_Mode with mode Append_File immediately
              following the Open call.

KP-313a1-7803-001 GNAT fails to find master of task declared in proper body.

  Problem:    If a task is declared in the proper body of a package subunit,
              and the stub appears within a procedure or task body, GNAT
              does not search the parent scope for the suitable task master.
              On most targets this is harmless, but on NT it can lead to a
              crash at runtime during program shut-down.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Place the package body inline at the place of the stub.

KP-313a1-7802-010 GLIDE does not start correctly on NT

  Problem:    When GLIDE is installed on a new NT machine (no previous
              installation), it gives an error message when starting and
              is incorrectly loaded.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Create an empty c:\glide\site-lisp\ada-mode.el file.

KP-313a1-7802-007 No gdb help menu in GLIDE

  Problem:    The help menu for gdb is not present in the GLIDE->Help
              menu.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use the menu Help->Manuals->Browse Manuals with Info, and
              select the gdb line.

KP-313a1-7801-004 Incorrect casing in Ada.Wide_Text_IO.Enumeration_IO

  Problem:    If a unit compiled with the -gnaty (style check) option
              uses the generic package Ada.Wide_Text_IO.Enumeration_IO,
              a compilation error occurs as a result of a non-standard
              casing in the files a-wtenio.ads/adb.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid the use of -gnaty for such units, or correct the
              spelling of positive to Positive in both these files.

KP-313a1-7731-010 Unexpected storage error or segmentation violation

  Problem:    Running a partition built with GLADE on a multi-processor can
              result in a storage error or segmentation violation because
              of a race condition in Garlic.Storage_Handling.

  Status:     This problem is corrected in GLADE version 3.14.

  Workaround: Comment out the Storage_Pool representation clause in
              Garlic.Streams or restrict operation to a single processor.

KP-313a1-7731-008 Assembler errors on Sparc with large jumps

  Problem:    Compiling large program on Sparc can cause an assembler
              instruction of the form "add %o7,(.LL2867-.-4),%o7"
              which generates an error about an out-of-range displacement.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Split up the subprogram in question or select an optimization
              level that will use less memory (-O2 vs. -O1 or -O2 vs. -O3).

KP-313a1-7731-003 Spurious visibility errors involving sibling child units

  Problem:    A child A.B.D may not be immediately visible within a sibling
              A.B.C when intervening code invokes some run-time library
              entity (e.g. some arithmetic conversions).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use a fully-qualified name for the child unit.

KP-313a1-7730-015 ASIS DDA problem on null records.

  Problem:    If A_Record_Definition element is used for a null record,
              then Type_Model_Kind returns A_Simple_Dynamic_Model instead
              of A_Simple_Static_Model. As a result, Record_Components
              malfunctions on such Elements instead of returning the
              empty result

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid the use of Type_Model_Kind and Record_Components for
              a record type that has no components.

KP-313a1-7730-005 Problem with analysis of task body elaboration

  Problem:    When pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
              is used, the compiler does not properly recognize an accept
              statement as a barrier for analysis of elaboration code.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Replace the accept call by a select call (e.g. by adding a
              dummy infinite delay), or use one of the other approaches
              to resolving the static elaboration issue.

KP-313a1-7729-004 Compiler crashes on concatenation with qualified character

  Problem:    Compiler crashes if the second operand in a concatenation is a
              qualified expression whose expression is a character literal,
              and the first operand is a non-static string.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use qualification, which is redundant in any case.

KP-313a1-7729-003 Wrong size for Interfaces.C.wchar_t type

  Problem:    The Interfaces.C.wchar_t type was 16 bits on Unix platforms
              where the system uses 32-bits for the wchar_t type.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Add a size clause for wchar_t in Interfaces.C and recompile
              this unit with -gnatg.

KP-313a1-7726-003 Compiler crashes on internal requeue to family member

  Problem:    The compiler crashes on a requeue statement in a protected
              operation if the target is an entry family member and the
              bounds of the entry family are constrained by a discriminant
              of the protected object.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Compile the body of the protected unit with checks suppressed,
              either with the -gnatp switch or with a local pragma.

KP-313a1-7726-002 Compiler crashes on a complex nested instantiation

  Problem:    The compiler crashes on a deeply nested instantiation within a
              package body when the generic is within the same body and the
              enclosing package is itself a instance.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Move the inner generic to the visible part of the enclosing
              package.

KP-313a1-7725-007 Elaboration code for successive bodies is out of order.

  Problem:    If a declarative part has two adjacent package bodies (e.g. from
              two successive instantiations), and each of the bodies generates
              elaboration code, the resulting code elaborates the bodies in
              reverse order.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Insert a dummy declaration between the two bodies (or instances)
              that will generate some elaboration code: for example, a non-
              static initial value for some dummy local variable.

KP-313a1-7725-006 Visibility problem with subunits of child units

  Problem:    If a subunit of a child unit mentions in its context some other
              descendant of the common ancestor, that ancestor may become
              invisible in subsequent code in the child unit.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Move the with_clause in the context of the subunit to the
              context of its parent unit.

KP-313a1-7724-003 Wrong indention of comments in GLIDE

  Problem:    The comments are incorrectly indented in GLIDE when the previous
              line contains a string with at least two minuses ("--  ").

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: The affected line must be manually reindented

KP-313a1-7723-003 Compiler crashes on complex selected component as actual

  Problem:    The code generator crashes (with error 999) when an actual in
              a call is a component of a packed discriminated record, when
              the component type is itself a packed discriminated record and
              the outer packing may force the component to be misaligned.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Introduce an explicit temporary to hold the selected component,
              and use the temporary in the call.

KP-313a1-7722-016 Spurious error on constant declaration and literal.

  Problem:    If a constant declaration is a homonym of a inherited enumeration
              literal with the same type, the compiler rejects the declaration.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use a different name for the constant, or remove it altogether,
              and use the literal directly.

KP-313a1-7722-015 Multiple out parameters can generate wrong code on Solaris

  Problem:    Under certain unusual conditions on Solaris, if a function is
              very large and has more than one out parameter, and is compiled
              with -fstack-check, then wrong code may be generated.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Compile the unit without stack checking, or eliminate the use
              of multiple out parameters, or shorten the function body.

KP-313a1-7722-014 Incorrect pure client partition detection

  Problem:    The creation of RACW objects in a partition is incorrectly
              detected. It is assumed that the visibility on the RACW
              type implies the creation of RACW objects. We provide
              a reduced partition communication subsystem for pure
              client partition and a partition is said to be a pure client
              partition when no RCI unit or RACW object are present
              on such partition. The incorrect detection of pure client
              partition implies that it is very rare to have pure
              client partitions.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Limit the number of times that a client partition is executed to a
              maximum of 256, or eliminate the use of pure client partitions.

KP-313a1-7722-007 Primitive operation not properly inherited with renaming

  Problem:    If a primitive operation of a tagged private type is declared
              by a renaming declaration, it is not inherited on derivation.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use subprogram declaration and renaming as body for primitive
              operation.

KP-313a1-7720-001 Tags incorrectly set for aggregate associations.

  Problem:    Tags are not set correctly in the case of aggregate associations
              where the underlying tag of the expression differs from the tag
              of the component type (for aggregates of both record and array
              types).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Assign the expression of a tagged component association
              to a temporary object of the same specific type as the
              component and substitute the temporary in the aggregate
              to ensure that the component tag is set properly.

KP-313a1-7719-007 Gnatls raises C_E if ADA_INCLUDE_PATH is not defined.

  Problem:    Gnatls raises Constraint_Error if ADA_INCLUDE_PATH
              is not defined.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Define ADA_INCLUDE_PATH to an empty directory

KP-313a1-7718-007 Use of -gnato/-gnatn/-O2 caused compiler crash on HPUX

  Problem:    The compilation of a long procedure with the options -gnato,
              -gnatn, and -O2 causes a compiler crash on HPUX. This test
              fails only on HPUX, and only under unusual circumstances.

  Status      This problem is corrected in GNAT version 3.14.

  Workaround: Remove any of the three options causing the problem. Note
              that this problem always causes a compiler crash. It cannot
              result in the silent generation of incorrect code.

KP-313a1-7718-002 Optimization problem in -O3 mode

  Problem:    The use of -O3 mode causes the compiler to crash with a
              code 999 gigi abort in one unusual case on the Power PC
              (this could also happen on Sparc).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Compile in -O2 mode instead of -O3 mode. Note that this
              problem always causes a compiler crash. It cannot result
              in the silent generation of incorrect code.

KP-313a1-7717-010 ASIS problem with upper half identifier characters

  Problem:    If an identifier contains characters in the upper half of the
              256-character set (e.g. 16#C2#), Corresponding_Name_Definition
              blows up.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid the use of Corresponding_Name_Definition in this case
              or restrict identifier characters to lower half characters.

KP-313a1-7716-009 Compiler loops on illegal program

  Problem:    If an incomplete type declaration is illegally used as completion
              to a private type declaration, the compiler goes into an infinite
              loop. This only happens in the context of a generic unit.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use this illegal construct.

KP-313a1-7716-003 Generic array formal does not allow type'Base reference

  Problem:    In a generic formal array type definition, the component type
              can be any form of name, but the compiler rejects the attribute
              reference typ'Base.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Define an explicit subtype, as in the following example:

                 subtype Typ_Base is Typ'Base;

              and use this new name instead of the attribute reference in the
              generic formal. In the case where Typ is itself a generic
              formal type, introduce an additional generic parameter for the
              base type.

KP-313a1-7715-006 Full command line paths not accepted by gnatfind/gnatxref

  Problem:    When full path names (including directory) are specified on
              the command line for gnatfind and gnatxref, then no output
              is displayed.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use only base file names (no directory) on the command line,
              and add the relevant directories with -I or -O

KP-313a1-7712-004 Compiler fails to diagnose improper actual derived type

  Problem:    If a the parent type of a formal derived type F2 is a formal
              real type F1, the compiler accepts an instantiation where the
              actual for F2 is a real type that is not derived from the actual for F1.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Verify correctness of actual types.

KP-313a1-7710-007 GNAT.Spitbol.Patterms.Fence function may operate incorrectly

  Problem:    The Fence function may malfunction causing a segment violation
              when a pattern is constructed using the function Fence in
              GNAT.Spitbol.Patterns.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use the simple Fence pattern rather than the Fence function
              if possible to rewrite the pattern.

KP-313a1-7707-003 Spurious error message on internal protected call

  Problem:    The compiler generates a spurious error (unmatched actual
              in call) on an internal call from one protected operation to
              another, when a formal is an in-out discriminated type with
              defaults.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use discriminated type without defaults for the formal.

KP-313a1-7707-002 Compiler crashes on current instance of protected type

  Problem:    Compiler aborts when the current instance of a protected type
              appears as an actual in a call to a subprogram external to the
              protected type.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use current instance as an actual in such a call.  It
              cannot be used to call back the types's protected operations,
              because the system will deadlock (such a call would be a bounded
              error). The attributes 'access and 'address will provide for
              all legal uses of the type outside of its definition.

KP-313a1-7706-002 Wrong values returned by GNAT.Calendar.Split

  Problem:    Hour, Minute, Second, Sub_Second parameters returned by Split
              are wrong for midnight time (i.e. 0h 0m 0s.00 ms).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Check specially for the case of midnight, and provide alternate
              processing to correctly split this value.

KP-313a1-7705-009 ASIS Enclosing_Element query fails inside expanded generic

  Problem:    If a subtype mark in the declaration of in out formal object is
              an expanded name, Enclosing_Element fails on this subtype mark
              and their components being parts of the corresponding artificial
              object renaming declaration in the expanded generic spec

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid the use of Enclosing_Element in this case

KP-313a1-7705-003 Spurious error message on instantiation within generic

  Problem:    Compiler generates spurious error message on an instantiation
              within a generic, when an actual is a private type whose
              completion is derived from a formal type in a formal package

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Make derivation non-private.

KP-313a1-7703-002 Spurious error message on multiple private extensions

  Problem:    Compiler generates an error message on the second private
              extension to a private type, where the middle private extension
              constrains the discriminant of the first.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Introduce explicit subtypes and derive from them, rather than
              providing a constraint directly in the type extension.

KP-313a1-7627-017 Problem with record assignment with change of representation

  Problem:    Compiler aborts on record assignment where the right-hand side
              is a type conversion, the type of the expression is a record
              with a different representation, and only the partial view of
              the type is visible. Problem was detected when trying to compile
              run-time library with Normalize_Scalars, but is more general.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Make derived type with different representation non-private.

KP-313a1-7627-002 Improper passing of some arguments to Valued_Procedure

  Problem:    When the Pragma Import_Valued_Procedure is used, and the
              first parameter is of an access or aggregate type, then
              the compiler incorrectly treats the parameter as IN OUT,
              resulting in an extra parameter being passed to the
              function.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Either change the parameter type to a scalar or add an extra
              parameter to the external routine.

KP-313a1-7627-001 Problem with allocators for protected types

  Problem:    Compiler aborts on an allocator for a limited private type
              with discriminants without defaults, that is completed by a
              discriminated protected type.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Make the type in question non-private.

KP-313a1-7626-005 Problem with -gnatR switch on subprogram instances

  Problem:    Compiler aborts when trying to display layout information
              present within a subprogram instance.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use -gnatR when compiling such units, which are
              unlikely to include representation clauses for local types
              in any case.

KP-313a1-7625-008 Nested functions incorrectly classified as pure

  Problem:    In a pure package, all contained entities are marked as pure
              including nested functions. This is incorrect in the case where
              a nested function modifies an up level variable. As a result
              the optimizer may generate wrong code in certain unusual
              cases where such a function is called more than once in the
              same local scope.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Remove pragma Pure, or compile the unit without optimization.

KP-313a1-7625-003 Cannot display large arrays under GDBTK

  Problem:    Under GDBTK it is not possible to display large arrays by
              double-clicking on them. GDBTK will crash when trying to
              output the array content on the "Expressions" window.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use the "print" GDB command in the GDBTK "Command Buffer"
              window to display the value of an array.

KP-313a1-7620-003 Problem with renaming nested packed object

  Problem:    Given a packed array whose elements are packed records,
              a renaming of a record component of an array component
              of the array may not work correctly.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Perform the renaming in two steps. First rename the array
              component, then rename the record component separately.

KP-313a1-7619-005 Storage error on expansion of named aggregate

  Problem:    If a choice is given by a subtype indication (rather than
              a range or a subtype mark) the compiler takes the bounds from
              the subtype mark and not from the given constraint.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Write the choice as a range, not a subtype indication.

KP-313a1-7617-006 Error accessing renamed discriminant of protected type/task

  Problem:    Compiler gives spurious error on a selected component whose
              selector is a renamed discriminant in a protected type extension.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use the same name for the renamed discriminant and the original
              one in the parent type.

KP-313a1-7613-004 Crash on premature use of incomplete type in instantiation

  Problem:    If T is an incomplete type whose completion is a record type
              declaration R, and some of the components of R have types that
              don't have a completion yet, it is illegal to use T as an actual
              in an instance. Instead of reporting the error properly, GNAT
              currently crashes during code generation.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use this illegal construct.

KP-313a1-7613-002 Name of formal paramater of Exception_Name does not match RM

  Problem:    In the specification of Ada.Exceptions, the formal of function
              Exception_Name that has type Exception_Id is given as X, rather
              than Id.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use named notation in a call to this function.

KP-313a1-7612-001 Compiler fails to recognize illegal recursive instantiation

  Problem:    GNAT fails to recognize that the following is illegal, because
              the outer package B is hidden by the inner B after 'generic'
              and the name of the formal resolves to the inner one.

                    with B;
                    generic
                       with package D is new B (<>);
                    package C.B is
                    end C.B;

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use this illegal construct.

KP-313a1-7605-012 Failure to detect ambiguous use of ** operator

  Problem:    GNAT fails to diagnose the ambiguity in a call to ** whose
              operands are numeric literals, in a context where both an
              operation inherited by derivation and a user-defined **
              (whose exponent type is not Standard.Integer) are visible.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: The construct in question is in any case illegal. The proper
              fix is to use type qualification on the first literal to make
              the operator selection unambiguous.

KP-313a1-7604-009 Crash on instance with unconstrained actual

  Problem:    Compiler crashes when an actual in an instantiation includes
              a call to a function that returns an unconstrained type, for
              example Positive'value (Command_line.Argument (1)).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Introduce a temporary to hold the actual, before the instantiation

KP-313a1-7530-005 Problem with renaming component of packed slice

  Problem:    Given a packed array, if a renaming declaration renames an
              element of a packed slice (e.g. very unusual constructs
              like x(1..3)(2) as the renamed object), then the renaming
              may not work correctly.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: This is unlikely to arise in real programs. A work around
              that is really the more natural way of writing things is
              to remove the slice (e.g. replace x(1..3)(2) by x(2)).

KP-313a1-7528-011 Alignment fault may occur on packed record reference

  Problem:    If a reference is made to a component of a packed array that
              is itself a component of a record, and the component has a
              component clause, then in some cases, the reference may cause
              an alignment error.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use an alignment clause on the containing record to ensure
              that the component has the same alignment as its type.

KP-313a1-7527-005 Incorrect code for integer to float conversion on PPC

  Problem:    On PowerPC and RS6000 systems, it is possible for register
              allocation to re-use a register for a conversion from 32-bit
              integer to 64-bit float. This problem is more likely to occur
              with -O0 than with optimization selected.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Changes around the area in question will change register
              allocation and possibly work around the problem.

KP-313a1-7524-010 Subtypes of limited types are not limited in some contexts

  Problem:    Given T, a limited record type, and ST, a subtype of T, then
              a type derived from T appears limited but a type derived from
              ST does not. As a consequence, spurious errors on inherited
              access discriminants may show up on the second derivation.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Always derive from the parent type, not the subtype.

KP-313a1-7522-007 Florist examples do not compile

  Problem:    Several Florist examples in the "tests" subdirectory do not
              compile properly using the Makefile provided.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Replace the -gnatag flag in the tests/Makefile by -gnata.

KP-313a1-7522-006 Compiler crash (code 507) from 'Length assigned to modular

  Problem:    If a 'Length attribute is assigned to a variable of modular
              type, the compiler will crash with a Gigi abort 507.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Add an explicit conversion to the modular type from the
              result of the 'Length attribute.

KP-313a1-7521-008 Assembler error on IRIX

  Problem:    On SGI systems, there are some cases involving the combination
              of 'Address with indexing that generate a .word directive
              in the assembler output file whose operand is the sum of
              a symbol and 2**32.  Some assemblers give an error message
              on such lines.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid the construct or edit the assembler file to change the
              constant to zero.
              
KP-313a1-7517-017 Spurious error on call to stream procedure.

  Problem:    If the second actual in a call to a stream procedure is an
              explicit conversion, GNAT incorrectly rejects the call,
              complaining that the actual is not a variable. This only
              occurs if the type of the formal is a derived untagged type.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use an intermediate variable and assign to the desired target
              with a separate assigment.

KP-313a1-7517-009 Incorrect unchecked conversion for some variable-sized types

  Problem:    If an instantiation of Unchecked_Conversion is converting
              between two types neither of whose size can be determined
              at compile-time, the output type is more strictly aligned,
              and the source of the unchecked conversion is either an
              object whose type is an unconstrained array or a reference
              to a component of an aggregate or the result is asigned to
              a component of an aggregate, the code to copy the data may be
              omitted by GNAT.

  Status:     This problem is fixed in GNAT version 3.14.

  Workaround: Avoid unchecked conversions meeting all the conditions above.

KP-313a1-7514-001 Compiler crash from indexing of result of concatenation

  Problem:    If an index is applied to the result of a concatenation (which
              must be in functional form, or it would be illegal), then the
              compiler may crash (an example is "&"(a,b)(4).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: This seems an unlikely construct to appear in a real program, but
              if this functionality is required, it can be obtained by first
              assigning the result of the concatenation to a local object, and
              then indexing this local object.

KP-313a1-7510-003 Unexpected Constraint_Error in Normalize_Scalars mode

  Problem:    Initialization of a complex record containing scalar
              fields with no initialization expression can cause
              Constraint_Error to be raised if the program is
              compiled with pragma Normalize_Scalars.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Suppress checks in the unit in which the record type
              is declared, or bracket the declaration with pragma
              Suppress and Unsuppress for more precise control

KP-313a1-7506-009 Ambiguity not detected in mixed-mode operations.

  Problem:    If there is a user-defined fixed-point type in scope, then
              an expression of the form:

                           Float (10.0 / I)

              where I is of type Integer, is ambiguous, because the type of
              of the division is either the user-defined fixed_point type, or
              the type Standard.Duration.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Qualify the real literal in such a context with the intended
              result type.

KP-313a1-7502-009 Problem taking address of a protected procedure.

  Problem:    If A is an access to a protected procedure, the compiler crashes
              when analyzing  A.all'Address

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: This construct is unlikely to be useful in any context.
              If it does occur, use some other equivalent construct.

KP-313a1-7502-007 Problem with nested generic instances importing local entities

  Problem:    A visible generic package may contain in its body instances of
              completely private generic units (declared in the enclosing
              package body). If the inner instances appear before their own
              generic bodies, the compiler may lose track of entities local
              to the package body that have become exported out of it.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Make sure that local generic bodies always appear before their
              local instances.

KP-313a1-7502-006 Spurious type error with fstack-check enabled

  Problem:    If the default expression in a call to an inherited
              subprogram has the type of the parent type, and fstack-check
              is enabled, the call node is reanalyzed after inserting the
              default expression in the list of actuals, leading to
              apparent type errors.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use fstack-check on units that contain such calls,

KP-313a1-7502-005 Crash on illegal address clause

  Problem:    An address clause for an object O1 that depends on the address
              of an object declared after O1 crashes the front-end. Such an
              address clause is illegal.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use this illegal construct.

KP-313a1-7429-008 Crash applying elaboration checks to unconstrained function.

 Problem:     If a function call that returns an unconstrained type appears in
              a more complex expression, the dynamic temporary variable that
              results cannot be handled by the code generator, if it appears
              in a conditional expression. It will be wrapped in such an
              expression if the function is not statically known to be
              elaborated, and dynamic elaboration checks are enabled.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Declare an explicit temporary whose initial value is the function
              call, or else do not enable elaboration checks for the unit that
              contains the call.

KP-313a1-7410-012 Mixed multiplications and division of binary modular types

  Problem:    If there is an expression of a modular type with a modulus
              of 2**64, 2**32, 2**16, or 2**8 of the form (A * C1) / C2
              where C1 and C2 are constants, C1 > C2, and C1 is a multiple
              of C2, the operation will be performed as if it were
              A * (C1 / C2).  These two expressions are usually equivalent,
              but are not if A * C1 is greater than the modulus of the type.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Assign A * C1 in the case above to a temporary variable of the
              same modular type.

KP-3131a1-7305-012 Problem with 'Position in variant record

  Problem:    If 'Position or 'Bit_Position is used on a field in a
              variant record that is inside a variant, the position may be
              reported relative to that variant instead of the start of the
              record.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use some other method for computing the position.

KP-3131a1-7126-001 Dead lock when using task attributes and controlled objects

  Problem:    When using tasking related constructs such as rendezvous or
              delay statements inside the Adjust procedure of a controlled
              object which is also a task attribute (using Ada.Task_Attributes)
              a dead lock would occur, hanging the application.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid the use of tasking constructs inside the Adjust procedure
              of such controlled types.

KP-3131a1-7118-001 Memory clobbered past object in assignments

  Problem:    On ia32 architectures if a record has a total size of
              64 bits, is 4-byte aligned, and has a field other than
              the first whose type is an aggregate, memory beyond the
              record may be clobbered if the entire record is assigned
              using an aggregate expression where the field is assigned
              an aggregate expression where most of the fields are zero
              but the outer aggerate does not have the majority of fields
              have zero values.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Assign the value to be placed in the field into a temporary
              variable and use that in the outer aggregate.

KP-3131a1-7008-014 Incorrect results from packed array assignment

  Problem:    In cases where a packed bit field had a length depending
              on a discriminant, an attempt to do an assignment to a
              component of the field could generate wrong code on big-
              endian machines (such as SPARC). 

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Copy the value into a temporary, and assign to the temporary
              and copy back, or remove the use of pragma Pack.

KP-313a1-6922-010 Missing dependency on system.ads in ALI file.

  Problem:    In current versions of GNAT, all files depend on system.ads
              since target dependent parameters are read from this file.
              The dependency was not always present in the ALI file, with
              the result that gnatmake could fail to perform some needed
              compilations (the error was caught by the binder).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: If system.ads is modified, use the -f parameter of gnatmake
              to ensure that all files are recompiled.

KP-313a1-6603-021 Increased memory usage with stack-checking in loop

  Problem:    When creating objects of an unconstrained type in a loop,
              and stack-checking is enabled, storage will not be freed
              until the loop is complete.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Add an extra begin/end pair around the body of the loop.

KP-313a1-6501-005 Allowing non-remote access types w/out Read/Write attributes

  Problem:    If a non-remote access type is declared in the visible part
              of a Remote_Types package (or a type with a part that is such
              an access type) it is not flagged as an error when the access
              type does not have Read and Write attributes (RM95-E.2.2(8)).

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Avoid such types or define Read and Write attributes for them.

KP-313a1-6411-001 Combining -gnats or -gnatc with other options

  Problem:    The GNAT documentation mentions that all -gnat switches may be
              combined. This is not true for the -gnatc and -gnats options
              however, as combining these with other GNAT options will
              result in generation of an empty object file.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not combine -gnatc and -gnats with other switches

KP-313a1-5911-008 Gnatmake on VMS doesn't stop when disk full

  Problem:    Gnatmake on VMS appears to hang when the disk is completely
              full. In reality it's running very slowly waiting for the
              current compilation to complete before reporting an error
              (bits going into the bit bucket). This also occurs on Unix,
              but runs much faster and so reports the error sooner.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Cleanup the disk and rerun gnatmake.

KP-313a1-5805-004 Problem with ACLs on source file in VMS

  Problem:    On VMS systems, if the source file passed to the GCC command
              line is only readable via ACLs, the GCC driver will reject
              the command.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Do not use ACLs to control access to such files; instead use
              user and group permissions.

KP-313a1-4723-003 Type derived from formal derived type has wrong primitives

  Problem:    If a type T in a generic unit is derived from an untagged formal
              derived type FT whose parent is P, then within an instance, T
              has the primitive operations of the actual for FT, not the
              operations from P itself.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Use a subtype of the formal derived type, rather than deriving
              further from it.

KP-313a1-4107-001 Problem with very long debugging symbols on Solaris

  Problem:    The use of very long symbols (thousands of characters long,
              so this is something that we only encountered in pathological
              test programs) can cause a compiler crash on Solaris.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Compile the affected unit without debugging information,
              or shorten very long symbol names.

KP-313a1-2822-003 Class-wide access attribute not allowed as controlling actual

  Problem:    An Access attribute with a class-wide prefix is not supported
              as a controlling actual for an access parameter in a dispatching
              call. The approved Ada 95 AI-127 amends the RM to allow this.

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Assign the attribute to a temporary whose type is an access
              type with the class-wide type as its designated type and pass
              the temporary as the actual in the dispatching call.

KP-313a1-0000-091 Backslashed shortcuts not recognized in regexp alternations

  Problem:    The shortcuts \w, \s,... that can be used in regexps as defined
              in GNAT.Regpat are incorrectly recognized in alternations

  Status:     This problem is corrected in GNAT version 3.14.

  Workaround: Replace the shortcuts by their range equivalent, ie \w should be
              replaced with [a-zA-Z0-9], \s with [ \t\n], ... The range is
              documented in g-regpat.ads
