]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/ada/ChangeLog
[multiple changes]
[gcc.git] / gcc / ada / ChangeLog
index 64dd7442b5e00c9a6a7bd2b4d27a3c8ba168a50f..b90a4acf39030f6ec8ca6643d1aa806f496d68ed 100644 (file)
+2011-08-04  Thomas Quinot  <quinot@adacore.com>
+
+       * sinfo.adb, sinfo.ads, sem_prag.adb, sem_ch12.adb (Pragma_Enabled):
+       This flag of N_Pragma nodes is not used, remove it as well as all of
+       the associated circuitry.
+
+2011-08-04  Javier Miranda  <miranda@adacore.com>
+
+       * exp_disp.adb (Make_DT): Switch -gnatdQ disables the generation of the
+       runtime check on duplicated externa tags
+       * debug.adb Document switch -gnatdQ.
+
+2011-08-04  Gary Dismukes  <dismukes@adacore.com>
+
+       * a-fihema.ads: Minor typo fix.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch10.adb: Minor comment update.
+
+2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * einfo.adb: Update the node field usage to reflect the renaming of
+       Return_Flag to Return_ Flag_Or_Transient_Decl.
+       (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl.
+       (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl.
+       (Write_Field15_Name): Change Return_Flag to
+       Return_Flag_Or_Transient_Decl.
+       * einfo.ads: Rename node field Return_Flag to
+       Return_Flag_Or_Transient_Decl. Update the associated comment and all
+       occurrences in entities.
+       (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. Update
+       associated Inline pragma.
+       (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. Update
+       associated Inline pragma.
+       * exp_ch4.ads, exp_ch4.adb (Expand_N_Expression_With_Actions): New
+       routine.
+       * exp_ch6.adb (Expand_N_Extended_Return_Statement): Update the calls to
+       Return_Flag and Set_Return_Flag.
+       * exp_ch7.adb (Process_Declarations): Add code to recognize hook
+       objects generated for controlled transients declared inside an
+       Exception_With_Actions. Update the calls to Return_Flag.
+       (Process_Object_Declaration): Add code to add a null guard for hook
+       objects generated for controlled transients declared inside an
+       Exception_With_Actions. Update related comment.
+       * exp_util.adb (Has_Controlled_Objects): Add code to recognize hook
+       objects generated for controlled transients declared inside an
+       Exception_With_Actions. Update the calls to Return_Flag.
+       * expander.adb (Expand): Add new case for N_Expression_With_Actions.
+
+2011-08-04  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_util.adb:(Wrong_Type): Improve error message on a one-element
+       positional aggregate.
+
+2011-08-04  Vincent Celier  <celier@adacore.com>
+
+       * par_sco.adb (Process_Decisions.Output_Header): Check and record pragma
+       SLOC only for pragmas.
+
+2011-08-04  Emmanuel Briot  <briot@adacore.com>
+
+       * projects.texi: Minor typo fix.
+
+2011-08-04  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-nmsc.adb (Check_File): Minor change to traces, to help debugging
+       on case-sensitive file systems.
+
+2011-08-04  Thomas Quinot  <quinot@adacore.com>
+
+       * put_scos.adb (Put_SCOs): Do not emit decision SCO for an X decision
+       nested in a disabled pragma.
+       * scos.ads, scos.adb, par_sco.ads, par_sco.adb: Record sloc of
+       enclosing pragma, if any, for X decisions.
+
+2011-08-04  Thomas Quinot  <quinot@adacore.com>
+
+       * sem_prag.adb: Minor reformatting.
+
+2011-08-04  Vincent Celier  <celier@adacore.com>
+
+       * a-tags.adb (Check_TSD): Avoid concatenation of strings, as it is not
+       allowed in no run time mode.
+
+2011-08-04  Vincent Celier  <celier@adacore.com>
+
+       * make.adb (Check): When -gnatc is used, check for the source file
+       inside the ALI file with a canonical case file name.
+
+2011-08-04  Emmanuel Briot  <briot@adacore.com>
+
+       * g-comlin.adb, g-comlin.ads (Add_Switch): Put back support for
+       overriding the separator.
+
+2011-08-04  Robert Dewar  <dewar@adacore.com>
+
+       * sem_aggr.adb, par_sco.adb, sem_type.adb, exp_util.adb, exp_ch9.adb,
+       prj-nmsc.adb, sem_ch13.adb, exp_strm.adb: Minor reformatting.
+
+2011-08-04  Robert Dewar  <dewar@adacore.com>
+
+       * gnat_rm.texi: Minor documentation fix for pragma Annotate.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute): add check during pre-analysis that
+       'Result only appears in postcondition of function.
+
+2011-08-04  Thomas Quinot  <quinot@adacore.com>
+
+       * a-tags.adb (Check_TSD): When raising PROGRAM_ERROR for a duplicated
+       external tag, include the value of the external tag in the exception
+       message.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * sem_attr.adb (Result): modify error message for misplaced 'Result
+
+2011-08-04  Sergey Rybin  <rybin@adacore.com>
+
+       * gnat_rm.texi (pragma Annotate): Fix syntax description to make it
+       clear that the second argument must be an identifier.
+
+2011-08-04  Thomas Quinot  <quinot@adacore.com>
+
+       * exp_ch9.adb (Build_Barrier_Function): When compiling with
+       -fpreserve-control-flow, insert an IF statement on the barrier
+       condition to ensure that a conditional branch instruction is generated.
+
+2011-08-04  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-part.adb, prj.adb, prj.ads, prj-tree.ads
+       (Processing_Flags.Ignore_Missing_With): new flag.
+
+2011-08-04  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-nmsc.adb (Find_Sources, Path_Name_Of): Fix handling of
+       Source_List_File on case-insensitive systems where the file is actually
+       on a case-sensitive file system (NFS,...).
+
+2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_ch6.adb (Analyze_Function_Return): In a rare case where a
+       function return contains a controlled [extension] aggregate and the
+       return statement is not part of a handled sequence of statements, wrap
+       the return in a block. This ensures that all controlled temporaries
+       generated during aggregate resolution will be picked up by the
+       finalization machinery.
+
+2011-08-04  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_aggr.adb (Resolve_Aggregate): If aggregate has box-initialized
+       components, freeze type before resolution, to ensure that default
+       initializations are present for all components.
+       * sem_res.adb (Resolve_Actuals): the designated object of an
+       accces-to-constant type is a legal actual in a call to an
+       initialization procedure.
+
+2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_util.adb (Extract_Renamed_Object): Add N_Type_Conversion and
+       N_Unchecked_Type_Conversion to the possible containers of a renamed
+       transient variable.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * par-ch13.adb (Aspect_Specifications_Present): recognize
+       "with Identifier'Class =>" as an aspect, so that a meaningful warning
+       is issued in Strict mode.
+       * par.adb: Fix typos in comments.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * sem_attr.adb (Result): modify error message to take into account Post
+       aspect when compiling Ada 2012 (or newer) code.
+
+2011-08-04  Nicolas Roche  <roche@adacore.com>
+
+       * env.c (__gnat_clearenv): Avoid use of dynamic size array in order to
+       remove need for GCC exceptions. 
+
+2011-08-04  Vincent Celier  <celier@adacore.com>
+
+       * makeutl.adb (Do_Complete): Call Debug_Output with the name of the
+       project, not the source file name.
+       * prj.adb (Find_Sources.Look_For_Sources): If the source has been
+       excluded, continue looking. This excluded source will only be returned
+       if there is no other source with the same base name that is not locally
+       removed.
+
+2011-08-04  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_res.adb (Resolve_Intrinsic_Operator): if the result type is
+       private and one of the operands is a real literal, use a qualified
+       expression rather than a conversion which is not meaningful to the
+       back-end.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch13.adb (Aspect_Loop): when an aspect X and its classwise
+       corresponding aspect X'Class are allowed, proceed with analysis of the
+       aspect instead of skipping it.
+
+2011-08-04  Tristan Gingold  <gingold@adacore.com>
+
+       * s-flocon.adb, s-flocon.ads: Add a body for s-flocon.ads
+       This will allow to have an Ada implementation for the subprogram.
+
+2011-08-04  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Analyze_Full_Type_Declaration): If the declaration is a
+       completion and aspects are present, apply them to the entity for the
+       type which is currently the partial view, but which is the one that
+       will be frozen.
+       * sem_ch13.adb (Analyze_Aspect_Specifications): if the predicate
+       applies to a partial view, indicate that the full view has predicates
+       and delayed aspects.
+       (Replace_Type_Reference): Handle properly predicates that apply to the
+       full view of a private completion.
+
+2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * layout.adb (Layout_Type): For composite types, do not set Esize.
+       * freeze.adb (Set_Small_Size): Remove test on alignment and do not
+       set Esize.
+       (Size_Known): Look at the RM size of components instead of the Esize.
+       (Freeze_Record_Type): Look at the RM size instead of the Esize to
+       issue warning and activate Implicit_Packing.
+       (Freeze_Entity): Likewise.  Do not issue a warning for alias/atomic
+       if the Esize is not known.
+       * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: Set Esize
+       for elementary types only.
+       (Analyze_Record_Representation_Clause): Look at the RM size instead
+       of the Esize to issue errors.
+       * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set Esize if it
+       is not known.
+       <E_Record_Type>: Look at the RM size instead of the Esize.  Remove
+       obsolete block.  
+       Look at the RM size instead of the Esize for types if the latter is
+       not known.
+       (gnat_to_gnu_field): Use Known_Esize instead of Known_Static_Esize.
+
+2011-08-04  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_type.adb: proper handling of equality not involving anonymous
+       access types.
+
+2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch7.adb (Create_Finalizer): Remove local variables Spec_Nod and
+       Vis_Decls. When creating a library-level finalizer for a package spec,
+       both the declaration and body of the finalizer are inserted either in
+       the visible or private declarations of the package spec.
+
+2011-08-04  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch3.adb (Derive_Subprograms): Complete assertion to request the
+       use of the full-view of a type when invoking Is_Ancestor.
+       * sem_type.adb (Is_Ancestor): For consistency, when the traversal of
+       the full-view of private parents is requested, then use also the
+       full-view of the parent of the first derivation.
+
+2011-08-04  Tristan Gingold  <gingold@adacore.com>
+
+       * s-taprop-vxworks.adb (Enter_Task): Use System.Float_Control.Reset
+       instead of the locally imported procedure.
+       * s-taprop-mingw.adb (Enter_Task): Ditto.
+       * s-valrea.adb (Scan_Real): Ditto.
+       * s-imgrea.adb (Set_Image_Real): Ditto.
+       * s-flocon.ads: Make the package pure.
+
+2011-08-04  Thomas Quinot  <quinot@adacore.com>
+
+       * sinfo.ads, sinfo.adb (Debug_Statement, Set_Debug_Statement): Remove.
+       * tbuild.ads, tbuild.adb (Make_Pragma): Adjust accordingly.
+       * sinfo-cn.ads, sinfo-cn.adb (Change_Name_To_Procedure_Call_Statement):
+       New subprogram, moved here from...
+       * par.adb, par-ch5.adb (P_Statement_Name): ... here.
+       * par-prag.adb (Par.Prag, case Pragma_Debug): Do not perform any
+       rewriting of the last argument into a procedure call statement here...
+       * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): ...do it there
+       instead.
+
+2011-08-04  Thomas Quinot  <quinot@adacore.com>
+
+       * par_sco.adb: Minor reformatting.
+
+2011-08-04  Robert Dewar  <dewar@adacore.com>
+
+       * erroutc.adb: Minor reformatting.
+
+2011-08-04  Thomas Quinot  <quinot@adacore.com>
+
+       * par_sco.adb: Comment update.
+
+2011-08-04  Tristan Gingold  <gingold@adacore.com>
+
+       * s-flocon.ads: New file.
+       * g-flocon.ads: Now a renaming of s-flocon.
+       * Makefile.rtl: Add s-flocon.o
+
+2011-08-04  Javier Miranda  <miranda@adacore.com>
+
+       * exp_strm.adb (Build_Array_Input_Function): if the array type is
+       constrained, do not attempt to build a subtype of it.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * errout.ads Change comments: remove 'R'M as an example where quotes
+       are needed; add ALFA as another case where quotes are not needed
+       * erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as another
+       case where quotes are not needed.
+       * sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
+       sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb:
+       Remove all occurrences of 'A'L'F'A
+
+2011-08-04  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch13.adb: check legality of invariant pragma.
+
+2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * bindgen.adb: Add comments.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * einfo.adb, einfo.ads: Free Flag254 and make Formal_Proof_On a
+       synthesized flag.
+       * sem_prag.adb (Analyze_Pragma): record the pragma Annotate
+       (Formal_Proof, On/Off) in the Rep_Item list of the current subprogram.
+
+2011-08-04  Robert Dewar  <dewar@adacore.com>
+
+       * exp_ch7.adb, exp_ch6.adb, sem_ch3.adb, layout.adb, sem_ch5.adb,
+       osint-c.ads, sem_util.ads, gnat1drv.adb, targparm.ads, sem_ch6.adb,
+       sem_ch13.adb, s-pooloc.adb: Minor reformatting.
+
+2011-08-04  Thomas Quinot  <quinot@adacore.com>
+
+       * s-pooloc.ads, s-pooglo.ads: Minor reformatting
+
+2011-08-04  Thomas Quinot  <quinot@adacore.com>
+
+       PR ada/47880
+       * s-pooloc.adb (Deallocate): Fix the case of deallocating the only
+       allocated object.
+
+2011-08-04  Robert Dewar  <dewar@adacore.com>
+
+       * einfo.ads, exp_ch4.adb: Minor reformatting.
+
+2011-08-04  Jerome Lambourg  <lambourg@adacore.com>
+
+       * back_end.ads (Gen_Or_Update_Object_File): Add more comments.
+
+2011-08-04  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch4.adb (Expand_Composite_Equality): code cleanup: use component
+       type in all cases to compute list of primitive operations, because full
+       view may be an itype that is not attached to the list of declarations.
+
+2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * bindgen.adb (Gen_Adafinal_Ada): Generate an early return if the
+       library has already been finalized.
+       (Gen_Adafinal_C): Likewise.
+       (Gen_Adainit_Ada): Generate an early return if the library has
+       already been elaborated.
+       (Gen_Adainit_C): Likewise.
+       (Gen_Output_File_Ada): Generate an elaboration flag.
+       (Gen_Output_File_C): Likewise.
+
+2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch4.adb (Expand_Allocator_Expression): Disable the generation of
+       Set_Finalize_Address_Ptr for CodePeer because Finalize_Address was not
+       built in the first place.
+       (Expand_N_Allocator): Disable the generation of Set_Finalize_Address_Ptr
+       for CodePeer because Finalize_Address was not built to begin with.
+       * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Ditto.
+
+2011-08-04  Pascal Obry  <obry@adacore.com>
+
+       * adaint.c (__gnat_tmp_name): Use current process id to create temp
+       filenames, this ensures unicity of filenames across processes.
+
+2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * bindgen.adb (Gen_Finalize_Library_Ada): Rename generated routine
+       Raise_Controlled to Raise_From_Controlled_Operation. Update the
+       signature of Raise_From_Controlled_Operation by adding flag From_Abort.
+       Add False as the actual to From_Abort in the generated call to
+       Raise_From_Controlled_Operation.
+
+2011-08-04  Jerome Lambourg  <lambourg@adacore.com>
+
+       * osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move to declaration
+       so that the ali file name can be retrieved from outside of this package.
+       * back_end.ads, back_end.adb (Gen_Or_Update_Object_File): New method
+       doing nothing in the general case, but used to update the object file
+       timestamp if directly generated by the backend.
+       * gnat1drv.adb (Gnat1drv): Make sure the object file's timestamp is set
+       to a later time than the ali file one.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * einfo.adb, einfo.ads (Formal_Proof_On): new flag set on subprogram
+       entities whose body contains an Annotate pragma which forces formal
+       proof on this body.
+       * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
+       sem_ch6.adb, sem_ch9.adb, sem_res.adb: Adapt call to
+       Mark_Non_ALFA_Subprogram to pass in a message and node.
+       * sem_prag.adb (Analyze_Pragma): add treatment of pragma Annotate
+       (Forma_Proof, On) which sets the flag Formal_Proof_On in the
+       surrounding subprogram.
+       * sem_util.adb, sem_util.ads (Mark_Non_ALFA_Subprogram,
+       Mark_Non_ALFA_Subprogram_Unconditional): if the subprogram being marked
+       as not in ALFA is annotated with Formal_Proof being On, then an error
+       is issued based on the additional parameters for message and node.
+       * snames.ads-tmpl (Name_Formal_Proof): new name for annotation.
+       * gcc-interface/Make-lang.in: Update dependencies.
+
+2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not generate
+       Finalize_Address when CodePeer is enabled.
+
+2011-08-04  Pascal Obry  <obry@adacore.com>
+
+       * adaint.c (__gnat_tmp_name): Use _tempnam() instead of tempnam() as
+       the latter returns a pointer to a static buffer which is deallocated
+       at the end of the routine.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch3.adb (Array_Type_Declaration): move test for type in ALFA
+       after index creation; mark unconstrained base array type generated as
+       being in/not in ALFA as well
+       (Make_Index): mark subtype created as in/not in ALFA
+       * sem_ch5.adb (Analyze_Iteration_Scheme): mark entity for iterating
+       over a loop as in/not in ALFA, depending on its type and form of loop
+       iteration.
+
+2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch7.adb (Build_Object_Declarations): Initialize flag Abort
+       directly to False on .NET and JVM.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch3.adb (Constrain_Enumeration, Constrain_Integer): remove
+       constraint that subtype must come from source code to be in ALFA, so
+       that anonymous subtypes can be in ALFA too.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch3.adb (Analyze_Object_Declaration): remove obsolete addition of
+       reference for ALFA mode.
+       * lib-xref-alfa.adb, lib-xref.ads (Traverse_Compilation_Unit): make
+       procedure public so as to use it from formal verification back-end.
+
+2011-08-04  Jerome Lambourg  <lambourg@adacore.com>
+
+       * g-comlin.adb (For_Each_Simple_Switch.Is_In_Config): Remove the
+       invalid checks of the Parameter, making Remove_Switch not working
+       correctly.
+
+2011-08-04  Arnaud Charlet  <charlet@adacore.com>
+
+       * targparm.ads: Update header: no run-time exception is needed on this
+       file.
+
+2011-08-04  Vincent Celier  <celier@adacore.com>
+
+       * a-fihema.adb: Use System.IO instead of GNAT.IO
+
+2011-08-04  Thomas Quinot  <quinot@adacore.com>
+
+       * sem_ch3.adb (Access_Definition): Anonymous access to subprogram types
+       are forbidden in Compiler_Unit mode.
+
+2011-08-04  Robert Dewar  <dewar@adacore.com>
+
+       * sem_util.adb: Minor reformatting.
+
+2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * bindgen.adb (Gen_Finalize_Library_Ada): Update the import string for
+       library-level finalizers.
+       (Gen_Finalize_Library_C): Update the import string for library-level
+       finalizers.
+       (Gen_Finalize_Library_Defs_C): Update the definition name of a
+       library-level finalizer.
+       * exp_ch7.adb: Remove with and use clauses for Stringt.
+       (Create_Finalizer): Remove local variables Conv_Name, Prag_Decl,
+       Spec_Decl. Add local variable Body_Id. The names of library-level
+       finalizers are now manually fully qualified and are no longer external.
+       A single name is now capable of servicing .NET, JVM and non-VM targets.
+       Pragma Export is no longer required to provide visibility for the name.
+       (Create_Finalizer_String): Removed.
+       (New_Finalizer_Name): New routine which mimics New_..._Name.
+
+2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_elab.adb (Check_Internal_Call_Continue): Change the type of the
+       elaboration counter to Standard_Short_Integer.
+       * sem_util.adb (Build_Elaboration_Entity): Likewise.
+       * bindgen.adb (Gen_Elab_Externals_Ada): Adjust to above change.
+       (Gen_Elab_Externals_C): Likewise.
+
+2011-08-04  Ed Falis  <falis@adacore.com>
+
+       * system-vxworks-arm.ads, system-vxworks-sparcv9.ads,
+       system-vxworks-ppc.ads, system-vxworks-m68k.ads,
+       system-vxworks-mips.ads, system-vxworks-x86.ads
+       (Always_Compatible_Rep): set to False for all VxWorks targets.
+
+2011-08-04  Robert Dewar  <dewar@adacore.com>
+
+       * par_sco.adb, prj-proc.adb, make.adb, bindgen.adb, prj.adb, prj.ads,
+       makeutl.adb, makeutl.ads, prj-nmsc.adb, exp_ch5.adb, exp_ch12.adb,
+       exp_ch7.ads, exp_util.ads, sem_util.ads, g-comlin.ads, exp_ch6.adb,
+       exp_ch6.ads, lib-xref.ads, exp_ch7.adb, exp_util.adb, exp_dist.adb,
+       exp_strm.adb, gnatcmd.adb, freeze.adb, g-comlin.adb, lib-xref-alfa.adb,
+       sem_attr.adb, sem_prag.adb, sem_util.adb, sem_elab.adb, sem_ch8.adb,
+       sem_ch11.adb, sem_eval.adb, sem_ch13.adb, sem_disp.adb, a-fihema.adb:
+       Minor reformatting and code reorganization.
+
+2011-08-04  Emmanuel Briot  <briot@adacore.com>
+
+       * projects.texi: Added doc for aggregate projects.
+
+2011-08-04  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-proc.adb, prj-nmsc.adb, prj-env.adb (Process_Declarative_Items):
+       Add support for overriding the Project_Path in aggregate projects.
+
+2011-08-04  Robert Dewar  <dewar@adacore.com>
+
+       * a-cofove.ads: Minor reformatting.
+
+2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Update the comment
+       on the generated code.
+       (Build_Finalize_Statements): Update the comment on the generated code.
+       (Build_Initialize_Statements): Update the comment on the generated code.
+       (Build_Object_Declarations): Add local variable Result. The object
+       declarations are now built in sequence.
+       * rtsfind.ads: Add RE_Exception_Occurrence_Access to tables RE_Id and
+       RE_Unit_Table.
+
+2011-08-04  Robert Dewar  <dewar@adacore.com>
+
+       * checks.adb, alfa.adb, alfa.ads: Minor reformatting.
+
+2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo.ads (Elaboration_Entity): Document new definition and use.
+       (Elaboration_Entity_Required): Adjust to above change.
+       * exp_attr.adb (Expand_N_Attribute_Reference): Likewise.
+       * exp_ch12.adb: And with and use for Snames.
+       (Expand_N_Generic_Instantiation): Test 'Elaborated attribute.
+       * exp_util.adb (Set_Elaboration_Flag): Likewise.
+       * sem_attr.adb (Analyze_Attribute) <Check_Library_Unit>: Delete.
+       <Check_Unit_Name>: Deal with N_Expanded_Name.
+       <Attribute_Elaborated>: Extend to all unit names.
+       * sem_elab.adb: And with and use for Uintp.
+       (Check_Internal_Call_Continue): Adjust to Elaboration_Entity change.
+       * sem_util.ads (Build_Elaboration_Entity): Adjust comment.
+       * sem_util.adb (Build_Elaboration_Entity): Change type to Integer.
+       * bindgen.adb (Gen_Elab_Externals_Ada): New local subprogram taken
+       from Gen_Adainit_Ada.
+       (Gen_Elab_Externals_C): Likewise, but taken from Gen_Adainit_C.
+       (Gen_Adafinal_Ada): Remove redundant test.  In the non-main program
+       case, do not call System.Standard_Library.Adafinal; instead call
+       finalize_library if needed.
+       (Gen_Adafinal_C): Likewise.
+       (Gen_Adainit_Ada): Do not set SSL.Finalize_Library_Objects in the
+       non-main program case.
+       (Gen_Adainit_C): Generate a couple of external declarations here.
+       In the main program case, set SSL.Finalize_Library_Objects.
+       (Gen_Elab_Calls_Ada): Adjust to Elaboration_Entity change.
+       (Gen_Elab_Calls_C): Likewise.
+       (Gen_Finalize_Library_Ada): Likewise.  Skip SAL interface units.
+       (Gen_Finalize_Library_C): Likewise.  Generate a full function.
+       (Gen_Main_C): Put back call to Ada_Final and don't finalize library
+       objects here.
+       (Gen_Output_File_Ada): Generate pragma Linker_Destructor for Ada_Final
+       if -a is specified.  Call Gen_Elab_Externals_Ada.  Move around call to
+       Gen_Adafinal_Ada.
+       (Gen_Output_File_C): Generate __attribute__((destructor)) for Ada_Final
+       if -a is specified.  Call Gen_Elab_Externals_C.  Remove useless couple
+       of external declarations. Â Call Gen_Finalize_Library_C.
+
+2011-08-04  Emmanuel Briot  <briot@adacore.com>
+
+       * prj.adb, prj.ads, makeutl.adb, makeutl.ads (Complete_Mains,
+       Compute_Compilation_Phases): new subprogram.
+       (Builder_Data, Builder_Project_Tree_Data): new subprogram and type
+       The number of mains as well as the various compilation phases that
+       need to be run are now project tree specific, since various
+       aggregated trees might have different requirements. In particular,
+       they do not all require bind or link phases.
+
+2011-08-04  Emmanuel Briot  <briot@adacore.com>
+
+       * prj.adb, prj.ads, makeutl.adb, makeutl.ads, prj-env.adb
+       (Project_Tree_Appdata): New type.
+       It is now possible to associate application-specific data to a project
+       tree. In particular, this is used in the gprbuild builder to avoid a
+       number of global tables and htables, especially now that there can be
+       several project trees loaded at once because of aggregate projects.
+       (Debug_Name): new procedure.
+       * projects.texi: Clarify syntax of "**" for Source_Dirs
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj.ads, makeutl.adb, makeutl.ads (Queue.Insert): now also inserts
+       the "roots" for a main.
+       (Fill_From_Project): add support for aggregate projects. Main units
+       in aggregated projects are now automatically added in the list of
+       files to build (although this fails later on in gprbuild, because
+       these files are not using the root proejct tree, so this needs
+       further cleanup)
+       * gcc-interface/Make-lang.in: Update dependencies.
+
+2011-08-03  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch4.adb (Analyze_Conditional_Expression): only allow boolean
+       conditional expression in ALFA.
+       * sem_res.adb (Resolve_Conditional_Expression): mark non-boolean
+       expressions as not in ALFA.
+
+2011-08-03  Robert Dewar  <dewar@adacore.com>
+
+       * a-cofove.adb: Minor reformatting.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads
+       (Insert_Project_Sources, Insert_withed_Sources_For): moved from the
+       gprbuild sources.
+       These packages are more logically placed in the Queue package, since
+       they manipulate the queue. It is also likely that they can be adapted
+       for gnatmake, thus sharing more code.
+       (Finish_Program, Fail_Program): moved from the gprbuild sources, so
+       that we could move the above.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * errutil.adb (Finalize): clean up the list of error messages on exit.
+       Calling this subprogram multiple times will no longer show duplicate
+       error messages on stderr.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * g-comlin.adb, g-comlin.ads (Set_Command_Line): ignore the parameter
+       Getopt_Switches when we have already define a command line
+       configuration.
+
+2011-08-03  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch11.adb (Analyze_Raise_xxx_Error): do not mark such nodes as not
+       in ALFA. Instead, they are considered as assertions to prove.
+       * sem_ch4.adb (Analyze_Conditional_Expression): do not always mark such
+       nodes as not in ALFA. Instead, include conditional expressions in ALFA
+       if they have no ELSE part, or if they occur in pre- and postconditions,
+       where the Condition cannot have side-effects in ALFA
+       (Analyze_Membership_Op): do not mark such nodes as not in ALFA
+       (Analyze_Type_Conversion): do not always mark such nodes as not in ALFA.
+       Instead, include type conversion between scalar types in ALFA.
+       * sem_ch6.adb (Process_Formals): correctly mark a parameter in ALFA
+       if-and-only-if its type is in ALFA.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * scos.adb, get_scos.adb, put_scos.adb
+       New code letter for decisions: G (entry guard)
+       * par_sco.adb
+       (Traverse_Subprogram_Body): Rename to...
+       (Traverse_Subprogram_Or_Task_Body): New subrpogram.
+       (Traverse_Protected_Body): New subprogram
+       (Traverse_Declarations_Or_Statements): Add traversal of task bodies,
+       protected bodies and entry bodies.
+
+2011-08-03  Yannick Moy  <moy@adacore.com>
+
+       * einfo.adb, einfo.ads (Is_Postcondition_Proc): new flag for procedure
+       entities with get/set subprograms, which is set on procedure entities
+       generated by the compiler for a postcondition.
+       * sem_ch6.adb (Process_PPCs): set new flag on postcondition procedures
+       * alfa.adb, alfa.ads (Get_Entity_For_Decl): new function returning the
+       entity for a declaration
+       (Get_Unique_Entity_For_Decl): new function returning an entity which
+       represents a declaration, so that matching spec and body have the same
+       entity.
+
+2011-08-03  Robert Dewar  <dewar@adacore.com>
+
+       * a-except-2005.adb, a-cfhama.adb, a-cfhase.adb, a-cfhase.ads,
+       a-cforma.adb, a-cforse.ads, a-cforse.adb: Minor reformatting
+
+2011-08-03  Yannick Moy  <moy@adacore.com>
+
+       * lib-xref-alfa.adb (Detect_And_Add_ALFA_Scope): make the subprogram
+       library-level because retriction No_Implicit_Dynamic_Code in the
+       front-end prevents its definition as a local subprogram
+       (Traverse_Compilation_Unit): extract new procedure from Add_ALFA_File,
+       for reuse in other contexts
+       (Traverse_Declarations_Or_Statements,
+       Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
+       Traverse_Package_Declaration, Traverse_Subprogram_Body): make all these
+       procedures take a callback parameter to be called on all declarations
+       * lib-xref.ads
+       (Traverse_All_Compilation_Units): new generic function to traverse a
+       compilation unit and call a callback parameter on all declarations
+
+2011-08-03  Javier Miranda  <miranda@adacore.com>
+
+       * sem_prag.adb (Process_Interface_Name): Allow duplicated export names
+       in Java since they are always enclosed in a namespace that
+       differentiates them, and overloaded entities are supported by the VM.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * checks.adb (Determine_Range): If a computed bound of an operation is
+       outside the range of the base type of the expression, and overflow
+       checks are enabled, the result is unknown and cannot be used for any
+       subsequent constant folding.
+       * sem_eval.adb (Compile_Time_Compare): if the bounds of one operand are
+       unknown, so is the result of the comparison.
+
+2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * a-except-2005.adb (Raise_From_Controlled_Operation): Add new formal
+       From_Abort. When finalization was triggered by an abort, propagate
+       Standard'Abort_Signal rather than Program_Error.
+       * a-except-2005.ads (Raise_From_Controlled_Operation): Add new formal
+       From_Abort.
+       * a-except.adb (Raise_From_Controlled_Operation): Add new formal
+       From_Abort. When finalization was triggered by an abort, propagate
+       Standard'Abort_Signal rather than Program_Error.
+       * a-except.ads:(Raise_From_Controlled_Operation): Add new formal
+       From_Abort.
+       * exp_ch7.adb:(Build_Adjust_Or_Finalize_Statements): New local variable
+       Abort_Id. Update the calls to Build_Object_Declarations and
+       Build_Raise_Statement to include Abort_Id.
+       (Build_Adjust_Statements): New local variable Abort_Id. Update the
+       calls to Build_Object_Declarations and Build_Raise_Statement to include
+       Abort_Id.
+       (Build_Finalize_Statements): New local variable Abort_Id. Update the
+       calls to Build_Object_Declarations and Build_Raise_Statement to include
+       Abort_Id.
+       (Build_Components): Create an entity for Abort_Id when exceptions are
+       allowed on the target.
+       (Build_Finalizer): New local variable Abort_Id.
+       (Build_Initialize_Statements): New local variable Abort_Id. Update the
+       calls to Build_Object_Declarations and Build_Raise_Statement to include
+       Abort_Id.
+       (Build_Object_Declarations): Add new formal Abort_Id. Create the
+       declaration of flag Abort_Id to preserve the original abort status
+       before finalization code is executed.
+       (Build_Raise_Statement): Add new formal Abort_Id. Pass Abort_Id to
+       runtime routine Raise_From_Controlled_Operation.
+       (Create_Finalizer): Update the call to Build_Raise_Statement to include
+       Abort_Id. Update the call to Build_Object_Declarations to include
+       Abort_Id. Update the layout of the finalizer body.
+       (Make_Handler_For_Ctrl_Operation): Add an actual for From_Abort.
+       (Process_Transient_Objects): New local variable Abort_Id. Remove the
+       clunky code to create all flags and objects related to
+       exception propagation and replace it with a call to
+       Build_Object_Declarations. Update the call to Build_Raise_Statement to
+       include Abort_Id.
+       * exp_ch7.ads (Build_Object_Declarations): Moved from body to spec.
+       Add new formal Abort_Id and associated comment on its use.
+       (Build_Raise_Statement): Add new formal Abort_Id and associated comment
+       on its use.
+       * exp_intr.adb (Expand_Unc_Deallocation): New local variable Abort_Id.
+       Remove the clunky code to create all flags and objects related to
+       exception propagation and replace it with a call to
+       Build_Object_Declarations. Update the call to Build_Raise_Statement.
+
+2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * s-tassta.adb: Fix minor typos.
+
+2011-08-03  Robert Dewar  <dewar@adacore.com>
+
+       * rtsfind.ads, makeutl.ads, prj.ads, prj.adb, make.adb,
+       lib-writ.adb, makeutl.adb, s-soflin.ads, clean.adb: Minor reformatting.
+
+2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch7.adb (Create_Finalizer): Treat freeze nodes in similar fashion
+       to packages. This ensures that the finalizer body will not end up
+       inside the freeze node.
+       (Process_Declarations): Add code to detect whether a freeze node has a
+       nested finalization collection.
+
+2011-08-03  Pascal Obry  <obry@adacore.com>
+
+       * g-awk.adb, g-awk.ads: Make GNAT.AWK API compatible with Ada 2005.
+       (Current_Session): Return a not null access to Session_Type.
+       (Default_Session): Likewise.
+
+2011-08-03  Robert Dewar  <dewar@adacore.com>
+
+       * a-cfdlli.adb, bindgen.adb, exp_ch4.adb, exp_ch13.adb, sem_warn.adb,
+       exp_ch3.adb, exp_ch3.ads: Minor reformatting.
+
+2011-08-03  Pascal Obry  <obry@adacore.com>
+
+       * g-awk.ads: Minor comment fix.
+
+2011-08-03  Sergey Rybin  <rybin@adacore.com>
+
+       * tree_io.ads (ASIS_Version_Number): Update because of the changes in
+       the tree structure related to discriminant constraints.
+       Original_Discriminant cannot be used any more for computing the
+       defining name for the reference to a discriminant.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_disp.adb (Is_Tag_Indeterminate): If the return type of the
+       function is not visibly tagged, this is not a dispatching call and
+       therfore is not Tag_Indeterminate, even if the function is marked as
+       dispatching on result.
+
+2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch13.adb: Add with and use clauses for Restrict and Rident.
+       (Expand_N_Free_Statement): Add a guard to protect against run-times
+       which do not support controlled types.
+       * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add a guard to protect
+       against run-times which do not support controlled types.
+       * exp_ch4.adb (Complete_Controlled_Allocation): Add a guard to protect
+       against run-times which do not support controlled types.
+       * exp_ch7.adb (Build_Finalization_Collection): Add a guard to protect
+       against run-times which do not support controlled types.
+       * exp_util.adb (Needs_Finalization): Code reformatting. Add a guard to
+       protect against run-times which do not support controlled types.
+
+2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_intr.adb: Put back with and use clauses for Exp_Ch11.
+       (Expand_Unc_Deallocation): Expand the AT_END handler at the very end.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch5.adb (Expand_Iterator_Loop): indicate that the cursor is
+       modified in the source, to prevent spurious warnings when compiling
+       with -gnatg.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * a-except-2005.adb: Minor reformatting.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_warn.adb (Check_One_Unit): if the only mention of a withed unit
+       is a renaming declaration in the private part of a package, do not emit
+       a warning that the with_clause could be moved because the renaming may
+       be used in the body or in a child unit.
+
+2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
+       Propagate the Comes_From_Source attribute from the original return
+       object to the renaming.
+
+2011-08-03  Jose Ruiz  <ruiz@adacore.com>
+
+       * exp_ch7.adb (Build_Raise_Statement): Do not call
+       Raise_From_Controlled_Operation when this routine is not present in
+       the run-time library.
+       (Cleanup_Protected_Object, Cleanup_Task): For restricted run-time
+       libraries (Ravenscar), tasks are non-terminating, and protected objects
+       and tasks can only appear at library level, so we do not want
+       finalization of protected objects nor tasks.
+       * exp_intr.adb: Minor clarification in comment.
+       bindgen.adb (Gen_Adainit_Ada, Gen_Main_C, Gen_Output_File_Ada,
+       Gen_Output_File_C): Remove references to finalization of library-level
+       objects when using restricted run-time libraries.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Build_Discriminant_Constraints): Set
+       Original_Discriminant only if the parent type is a generic formal.
+
+2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch13.adb: Add with and use clause for Targparm;
+       (Expand_N_Free_Statement): Prevent the generation of a custom
+       Deallocate on .NET/JVM targets since this requires pools and address
+       arithmetic.
+       * exp_ch4.adb (Expand_Allocator_Expression): When compiling for
+       .NET/JVM targets, attach the newly allocated object to the access
+       type's finalization collection. Do not generate a call to
+       Set_Finalize_Address_Ptr on .NET/JVM because this routine does not
+       exist in the runtime.
+       (Expand_N_Allocator): When compiling for .NET/JVM targets, do not
+       create a custom Allocate for object that do not require initialization.
+       Attach a newly allocated object to the access type's finalization
+       collection on .NET/JVM.
+       * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing for
+       assignment of controlled types on .NET/JVM. The two hidden pointers
+       Prev and Next and stored and later restored after the assignment takes
+       place.
+       * exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specialized
+       kludge for .NET/JVM to recognize a particular piece of code coming from
+       Heap_Management and change the call to Finalize into Deep_Finalize.
+       * exp_ch7.adb (Build_Finalization_Collection): Allow the creation of
+       finalization collections on .NET/JVM only for types derived from
+       Controlled. Separate the association of storage pools with a collection
+       and only allow it on non-.NET/JVM targets.
+       (Make_Attach_Call): New routine.
+       (Make_Detach_Call): New routine.
+       (Process_Object_Declarations): Suppress the generation of
+       build-in-place return object clean up code on .NET/JVM since it uses
+       pools.
+       * exp_ch7.ads (Make_Attach_Call): New routine.
+       (Make_Detach_Call): New routine.
+       * exp_intr.adb Add with and use clause for Targparm.
+       (Expand_Unc_Deallocation): Detach a controlled object from a collection
+       on .NET/JVM targets.
+       * rtsfind.ads: Add entries RE_Attach, RE_Detach and
+       RE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table.
+       * snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the special
+       names used in finalization.
+
+2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * a-fihema.adb: Add with and use clauses for System.Soft_Links.
+       (Attach, Detach): Lock the current task when chaining an object onto a
+       collection.
+
+2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation):
+       Rewritten to create the message strings when the exception is not
+       raised by an abort during finalization.
+       * a-except.ads, a-except-2005.ads: Add pragma Export for procedure
+       Raise_From_Controlled_Operation and update its associated comment.
+       * a-fihema.ads, a-fihema.adb: New GNAT unit.
+       Ada.Finalization.Heap_Management provides key functionality
+       associated with controlled objects on the heap, their creation,
+       finalization and reclamation. Type Finalization_Collection is
+       effectively a wrapper which sits ontop of a storage pool and performs
+       all necessary bookkeeping for all the objects it contains. Each
+       access-to-controlled or access-to-class-wide type receives a collection
+       as part of its expansion. The compiler generates buffer code and
+       invokes Allocate / Deallocate to create and destroy allocated
+       controlled objects.
+       * a-finali.adb ("="): Removed.
+       * a-finali.ads ("="): Removed. Controlled types no longer carry hidden
+       fields Prev and Next.
+       * ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer.
+       A library unit with at least one controlled object on the library level
+       has a special finalizer which is invoked by the binder. To signal this,
+       ali files carry field PF.
+       * ali.ads: New field in type Unit_Record called Has_Finalizer. Add
+       associated comment on field usage.
+       * a-tags.adb (Get_RC_Offset): Removed.
+       (Needs_Finalization): New routine.
+       * a-tags.ads: Update the structure of the GNAT dispatch tables.
+       Dispatch tables now carry field Needs_Finalization which provides
+       runtime indication whether a type is controlled or has controlled
+       components or both. Remove field RC_Offset.
+       (Get_RC_Offset): Removed along with its associated pragma Export.
+       Since tagged types with controlled components no longer carry hidden
+       field _controller, the special mechanism to retrieve its location is no
+       longer needed.
+       (Needs_Finalization): New routine.
+       * atree.ads, atree.adb (Elist24): New routine.
+       (Set_Elist24): New routine.
+       * atree.h: Add a define clause for Elist24.
+       * bindgen.adb New library-level variable Lib_Final_Built.
+       (Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the
+       presence of a VM target, the routine generates calls to the proper
+       library finalization routine.
+       (Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM
+       targets. Set the correct library finalization routine depending on
+       whether the library has controlled objects or this is a VM compilation.
+       (Gen_Finalize_Library_Ada): New routine. This procedure generates calls
+       to library-level finalizers of compiled units in reverse order of
+       elaboration. It also produces exception management code and reraises a
+       potential exception after all units have been finalized.
+       (Gen_Finalize_Library_C): New routine. This procedure generates calls to
+       library-level finalizers of compiled units in reverse order of
+       elaboration.
+       (Gen_Finalize_Library_Defs_C): New routine. This procedure generates the
+       definitions of all library-level finalizers available to the compilation
+       (Gen_Main_Ada): Directly call Adafinal which now contails all target
+       dependent code.
+       (Gen_Main_C): Add new local constant Needs_Library_Finalization. Call
+       System.Standard_Library.Adafinal directly. If the library needs
+       finalization actions, create the sequence of finalization calls.
+       (Gen_Output_File_Ada): Alphabetize local variables and constants.
+       Generate a with clause for System.Soft_Links when compiling for a VM.
+       Remove the code which imports System.Standard_Library.Adafinal as
+       Do_Finalize. Generate the library finalization routine.
+       (Gen_Output_File_C): Add new local constant Needs_Library_Finalization.
+       If the library needs finalization actions, create all the definitions
+       of library- level finalizers.
+       (Has_Finalizer): New routine. Determines whether at least one compiled
+       unit has a library-level finalizer.
+       Add type Qualification_Mode.
+       (Set_Unit_Name): Add a formal which controls the replacement of a dot.
+       * einfo.adb: New usage of field 15 as Return_Flag.
+       Remove Finalization_Chain_Entity from the usages of field 19.
+       Remove Associated_Final_Chain from the usages of field 23.
+       New usage of field 23 as Associated_Collection.
+       New usage of field 24 as Finalizer.
+       New usage of flag 252 as Is_Processed_Transient.
+       (Associated_Final_Chain): Removed.
+       (Associated_Collection): New routine.
+       (Finalization_Chain_Entity): Removed.
+       (Finalizer): New routine.
+       (Is_Finalizer): New routine.
+       (Is_Processed_Transient): New routine.
+       (Return_Flag): New routine.
+       (Set_Associated_Final_Chain): Removed.
+       (Set_Associated_Collection): New routine.
+       (Set_Finalization_Chain_Entity): Removed.
+       (Set_Finalizer): New routine.
+       (Set_Is_Processed_Transient): New routine.
+       (Set_Return_Flag): New routine.
+       (Write_Entity_Flags): Include Is_Processed_Transient to the list of
+       displayed flags.
+       (Write_Field8_Name): Alphabetize the output.
+       (Write_Field11_Name): Alphabetize the output.
+       (Write_Field12_Name): Alphabetize the output.
+       (Write_Field13_Name): Alphabetize the output.
+       (Write_Field14_Name): Alphabetize the output.
+       (Write_Field15_Name): Alphabetize the output.
+       (Write_Field16_Name): Alphabetize the output.
+       (Write_Field17_Name): Alphabetize the output.
+       (Write_Field18_Name): Alphabetize the output.
+       (Write_Field19_Name): Alphabetize the output. Remove the output of
+       Finalization_Chain_Entity.
+       (Write_Field20_Name): Alphabetize the output.
+       (Write_Field21_Name): Alphabetize the output.
+       (Write_Field22_Name): Alphabetize the output.
+       (Write_Field23_Name): Alphabetize the output. Remove the output of
+       Associated_Final_Chain. Add output for Associated_Collection.
+       (Write_Field24_Name): Alphabetize the output.
+       (Write_Field25_Name): Add output for Finalizer.
+       (Write_Field26_Name): Alphabetize the output.
+       (Write_Field27_Name): Alphabetize the output.
+       (Write_Field28_Name): Alphabetize the output.
+       * einfo.ads: Add new field description for Associated_Collection and
+       its uses in nodes.
+       Remove Associated_Final_Chain and its uses in nodes.
+       Remove Finalization_Chain_Entity and its uses in nodes.
+       Add new field description for Finalizer and its uses in nodes.
+       Add new synthesized attribute Is_Finalizer.
+       Add new flag description for Is_Processed_Transient and its uses in
+       nodes.
+       Add new field description for Return_Flag and its uses in nodes.
+       (Associated_Final_Chain): Removed along with its pragma Inline.
+       (Associated_Collection): New routine and pragma Inline.
+       (Finalization_Chain_Entity): Removed along with its pragma Inline.
+       (Finalizer): New routine and pragma Inline.
+       (Is_Finalizer): New routine and pragma Inline.
+       (Is_Processed_Transient): New routine and pragma Inline.
+       (Return_Flag): New routine and pragma Inline.
+       (Set_Associated_Final_Chain): Removed along with its pragma Inline.
+       (Set_Associated_Collection): New routine and pragma Inline.
+       (Set_Finalization_Chain_Entity): Removed along with its pragma Inline.
+       (Set_Finalizer): New routine and pragma Inline.
+       (Set_Is_Processed_Transient): New routine and pragma Inline.
+       (Set_Return_Flag): New routine and pragma Inline.
+       * exp_aggr.adb: Alphabetize subprograms.
+       (Build_Array_Aggr_Code): Remove formal Flist and its associated comment.
+       (Build_Record_Aggr_Code): Remove formals Flist and Obj along with their
+       associated comments. Remove local variables External_Final_List and
+       Attach.
+       Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to
+       Ancestor. Remove the retrieval of finalization lists. Update the call to
+       Make_Adjust_Call.
+       (Convert_Aggr_In_Allocator): Remove the retrieval of finalization
+       lists. Update the call to Late_Expansion.
+       (Convert_Aggr_In_Assignment): Update the call to Late_Expansion.
+       (Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion.
+       (Gen_Assign): Remove the retrieval of the finalization list used to
+       build the assignment. Update the calls to Make_Init_Call and
+       Make_Adjust_Call.
+       (Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions.
+       Remove the mechanism to determine attachment levels and finalization
+       list retrieval. Remove the processing for coextensions.
+       (Init_Controller): Removed. Controllers no longer exist.
+       (Late_Expansion): Remove formals Flist and Obj along with their
+       associated comments. Update the calls to Build_Record_Aggr_Code and
+       Build_Array_Aggr_Code.
+       * exp_ch13.adb (Expand_N_Free_Statement): New routine.
+       (Expand_N_Freeze_Entity): Add special processing for finalizers which
+       appear in entry bodies, protected subprograms and task bodies.
+       * exp_ch13.ads (Expand_N_Free_Statement): New routine.
+       * exp_ch3.adb (Add_Final_Chain): Removed.
+       (Build_Array_Init_Proc): Alphabetize local variables.
+       (Build_Assignment): Alphabetize local variables. Update the call to
+       Maked_Adjust_Call.
+       (Build_Class_Wide_Master): Rename local variables to better reflect
+       their role.
+       (Build_Discriminant_Assignments): Code reformatting.
+       (Build_Init_Call_Thru): Code reformatting.
+       (Build_Init_Procedure): Code reformatting. Generate a special version
+       of Deep_Finalize which is capable of finalizing all initialized
+       components and ignore the rest.
+       (Build_Init_Statements): Rename local variables to better reflect their
+       role.
+       Reimplement the mechanism to include the creation and update of an index
+       variable called a "counter". It is used as a bookmark for tracing
+       initialized and non-initialized components.
+       (Build_Initialization_Call): Remove local variable Controller_Typ.
+       Alphabetize all local variables. Remove the initialization of the
+       record controller and update the call to Make_Init_Call.
+       (Build_Record_Init_Proc): Rename formal Pe to Rec_Ent.
+       New local variable Counter.
+       (Constrain_Array): Alphabetize.
+       (Expand_Freeze_Array_Type): Create a collection instead of a
+       finalization list.
+       (Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive
+       Finalize_Address which is used in conjunction with allocated controlled
+       objects.
+       (Expand_N_Object_Declaration): Remove the creation of a finalization
+       list for anonymous access types. Update the calls to Make_Init_Call and
+       Make_Adjust_Call.
+       (Expand_Freeze_Record_Type): Remove local variable Flist. Remove the
+       retrieval of finalization lists. Remove the expansion of the record
+       controller. Create TSS primitive Finalize_Address used in conjunction
+       with controlled objects on the heap. Create finalization collections
+       for access-to-controlled record components.
+       (Expand_Record_Controller): Removed.
+       (Freeze_Type): Remove the freezing of record controllers. Freezing of
+       class-wide types now requires additional processing. Create
+       finalization collections for access-to-controlled types.
+       (Increment_Counter): New routine.
+       (Make_Counter): New routine.
+       (Make_Eq_If): Remove the mention of Name_uController.
+       (Make_Predefined_Primitive_Specs): There is no longer need to skip
+       types coming from System.Finalization_Root.
+       (Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles.
+       (Predefined_Primitive_Bodies): There is no longer need to skip types
+       coming from System.Finalization_Root.
+       (Stream_Operation_OK): Do not generate stream routines for
+       type Ada.Finalization.Heap_Management.Finalization_Collection.
+       * exp_ch3.ads: Alphabetize subprograms.
+       * exp_ch4.adb: Remove with and use clause for Sem_Ch8.
+       Add with and use clause for Lib.
+       (Complete_Coextension_Finalization): Removed.
+       (Complete_Controlled_Allocation): New routine. Create a finalization
+       collection for anonymous access-to-controlled types. Create a custom
+       Allocate which interfaces with the back end and the machinery in
+       Heap_Management.
+       (Expand_Allocator_Expression): Add necessary calls to
+       Complete_Controlled_Allocation. Remove the retrieval of finalization
+       lists. Update the calls to Make_Adjust_Call. Generate a call to
+       Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
+       the associated collection.
+       (Expand_N_Allocator): Remove the processing for dynamic coextensions.
+       Code clean up. Remove the retrieval of finalization lists and
+       attachment levels.
+       Update the call to Make_Init_Call. Generate a call to
+       Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
+       the associated collection.
+       (Get_Allocator_Final_List): Removed. Finalization lists are not
+       available.
+       (Suitable_Element): Remove the mention of Name_uController.
+       * exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp.
+       (Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of
+       the left hand side, carry out the assignment and adjust the left hand
+       side.
+       * exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed.
+       (Add_Collection_Actual_To_Build_In_Place_Call): New routine.
+       (BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to
+       BIP_Collection and BIPcollection.
+       (Build_Heap_Allocator): New routine used to allocate the return object
+       of a build-in-place function onto a collection.
+       (Expand_Ctrl_Function_Call): Moved from Exp_Ch7.
+       (Expand_Call): Do not replace direct calls to Deep routines with their
+       aliases.
+       (Expand_N_Extended_Return_Statement): Give all variables shorter names
+       and update their occurrences. Add a special return flag to monitor the
+       [ab]normal execution of the function. The flag is set right before the
+       return statement.
+       Rewrite the mechanism used to allocate a build-in-place return object
+       on the heap or on a storage pool.
+       (Is_Direct_Deep_Call): New routine.
+       (Make_Build_In_Place_Call_In_Allocator): Add a collection to a
+       build-in-place function call instead of a final list. Build a call to
+       Set_Finalize_Address_Ptr to decorate the associated collection.
+       (Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in
+       order to name the build-in-place function call's result for later
+       finalization. Add a collection to a build-in-place function call
+       instead of a final list.
+       (Make_Build_In_Place_Call_In_Assignment): Add a collection to a
+       build-in-place function call instead of a final list. Remove the code
+       which moves one final list and transforms it into the actual in a
+       nested build-in-place call.
+       (Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a
+       build-in-place function call instead of a final list.
+       (Move_Final_List): Removed.
+       (Needs_BIP_Collection): New routine.
+       (Needs_BIP_Final_List): Removed.
+       * exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in
+       enumeration type BIP_Formal_Kind.
+       Update the related comment.
+       (Needs_BIP_Collection): New routine.
+       (Needs_BIP_Final_List): Removed.
+       * exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt
+       and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the
+       majority of subprograms in this unit. Add Name_Finalize_Address to
+       array Name_Of and TSS_Finalize_Address to array Deep_Name_Of.
+       (Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization
+       statements for an array type.
+       (Build_Adjust_Statements): Create the adjust statements for a record
+       type.
+       (Build_Cleanup_Statements): New routine. A procedure which given any
+       construct containing asynchronous calls, references to _master, or is a
+       task body, a task allocation or a protected body produces the necessary
+       runtime calls to clean up these constructs.
+       (Build_Exception_Handler): New routine.
+       (Build_Final_List): Removed.
+       (Build_Finalization_Collection): New routine. A core procedure which
+       creates a collection to service heap allocated controlled objects
+       associated with an access-to-controlled type.
+       (Build_Finalize_Statements): Create the finalization statements for a
+       record types.
+       (Build_Finalizer): New routine. A core procedure which given any
+       construct with declarations and/or statements detects all objects which
+       need any type of clean up (controlled objects, protected objects) and
+       generates all necessary code to clean up the said objects in the proper
+       order.
+       (Build_Finalizer_Call): New routine.
+       (Build_Initialize_Statements): Create the initialization statements for
+       an array type. The generated routine contains code to finalize partially
+       initialized arrays.
+       (Build_Object_Declarations): New routine.
+       (Build_Raise_Statement): New routine.
+       (Clean_Simple_Protected_Objects): Removed.
+       (Controller_Component): Removed.
+       (Enclosing_Function): New routine.
+       (Expand_Cleanup_Actions): Create a finalizer for a construct which has
+       either declarations or statements or both.
+       (Expand_N_Package_Body): Create a finalizer for a non-generic package.
+       (Expand_N_Package_Declaration): Create a finalizer for a non-generic
+       package.
+       (Find_Final_List): Removed.
+       (Global_Flist_Ref): Removed.
+       (In_Finalization_Root): Removed.
+       (Insert_Actions_In_Scope_Around): Determine the range of the transient
+       scope in terms of tree nodes. Process all transient variables within
+       that range.
+       (Make_Adjust_Call): Rewritten. There is no longer an attach call
+       generated after the adjust.
+       (Make_Attach_Call): Removed.
+       (Make_Call): New routine.
+       (Make_Clean): Removed.
+       (Make_Deep_Array_Body): Rewritten to simply invoke the appropriate
+       build routines.
+       (Make_Deep_Proc): Rewritten to generate the new profile signature used
+       in Deep routines.
+       (Make_Deep_Record_Body): Rewritten to simply invoke the appropriate
+       build routines.
+       (Make_Final_Call): Modified to simply create a call to either
+       Deep_Finalize or Finalize.
+       (Make_Finalize_Address_Body): New routine.
+       (Make_Finalize_Address_Stmts): New routine. A function which produces
+       TSS primitive Finalize_Address used in conjunction with heap allocated
+       controlled objects.
+       (Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM.
+       (Make_Init_Call): Rewritten. There is no longer an attach call
+       generated after initialization.
+       (Make_Local_Deep_Finalize): New routine.
+       (Make_Set_Finalize_Address_Ptr_Call): New routine.
+       (Make_Transient_Block): Remove the finalization list retrieval and
+       manipulation.
+       (Needs_Finalization): Moved to Exp_Util.
+       (Parent_Field_Type): New routine.
+       (Preprocess_Components): New routine.
+       (Process_Transient_Objects): New routine.
+       (Wrap_HSS_In_Block): New routine.
+       (Wrap_Transient_Declaration): Remove finalization list management and
+       controller insertion.
+       (Wrap_Transient_Expression): Code reformatting.
+       (Wrap_Transient_Statement): Code reformatting.
+       * exp_ch7.ads (Build_Final_List): Removed.
+       (Build_Finalization_Collection): New routine.
+       (Build_Raise_Statement): New routine.
+       (Controller_Component): Removed.
+       (Expand_Ctrl_Function_Call): Moved to Exp_Ch6.
+       (Find_Final_List): Removed.
+       (In_Finalization_Root): Removed.
+       (Is_Simple_Protected_Type): Update related comment.
+       (Make_Adjust_Call): New parameter profile and associated comments.
+       (Make_Attach_Call): Removed.
+       (Make_Final_Call): New parameter profile and associated comments.
+       (Make_Finalize_Address_Body): New routine.
+       (Make_Init_Call): New parameter profile and associated comments.
+       (Make_Local_Deep_Finalize): New routine.
+       (Make_Set_Finalize_Address_Ptr_Call): New routine.
+       (Needs_Finalization): Moved to Exp_Util.
+       * exp_ch9.adb (Add_Object_Pointer): Code reformatting.
+       (Expand_N_Protected_Body): Remove the handling of finalization lists.
+       (Find_Protection_Type): Moved to Exp_Util.
+       * exp_disp.adb: Remove with and use clauses for Exp_Ch7.
+       (Make_DT): Update sequence of dispatch table initialization. Remove the
+       initialization of field RC_Offset. Add initialization of field Needs_
+       Finalization.
+       * exp_intr.adb (Expand_Unc_Deallocation): Code reformatting.
+       Reimplement how an object is first finalized, then deallocated.
+       * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
+       Code reformatting.
+       * exp_tss.ads: Add special suffix for TSS primitive Finalize_Address.
+       Register TSS_Finalize_Address with type TSS_Names.
+       * exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core
+       procedure provides the interface between an allocation / deallocation
+       and the support machinery in Ada.Finalization.Heap_Management.
+       (Find_Init_Call): Code reformatting.
+       (Find_Init_Call_In_List): Code reformatting.
+       (Find_Protection_Type): Moved from Exp_Ch9.
+       (Find_Prim_Op): Reimplement to add preference of recovered primitive.
+       (Has_Controlled_Coextensions): Removed.
+       (Has_Controlled_Objects): New routine.
+       (In_Library_Level_Package_Body): New routine.
+       (Insert_Action_After): New routine.
+       (Is_Finalizable_Transient): New routine. This predicate determines
+       whether an object declaration is one of the many variants of controlled
+       transients.
+       (Is_Null_Access_BIP_Func_Call): New routine.
+       (Is_Non_BIP_Func_Call): New routine.
+       (Is_Related_To_Func_Return): New routine.
+       (Needs_Finalization): Moved from Exp_Ch7.
+       * exp_util.ads (Build_Allocate_Deallocate_Proc): New routine.
+       (Find_Protection_Type): Moved from Exp_Ch9.
+       (Has_Controlled_Coextensions): Removed.
+       (Has_Controlled_Objects): New routine.
+       (In_Library_Level_Package_Body): New routine.
+       (Insert_Action_After): New routine.
+       (Is_Finalizable_Transient): New routine.
+       (Is_Null_Access_BIP_Func_Call): New routine.
+       (Is_Non_BIP_Func_Call): New routine.
+       (Is_Related_To_Func_Return): New routine.
+       (Needs_Finalization): Moved from Exp_ch7.
+       * expander.adb (Expand): Add a case for N_Free_Statement.
+       * freeze.adb (Freeze_All): Replace the generation of a finalization
+       list with a collection for access-to-controlled types.
+       (Freeze_Entity): Code reformatting.
+       (Freeze_Record_Type): Remove the freezing of a record controller
+       component.
+       (Freeze_Subprogram): Code reformatting.
+       * inline.adb (Cleanup_Scopes): Remove the reset of the scope
+       finalization list.
+       * lib-writ.adb (Write_Unit_Information): Output "PF" when a package
+       has a library-level finalizer.
+       * lib-writ.ads: Add "PF" to the sequence of unit attributes.
+       * a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed.
+       * Makefile.rtl: Remove a-filico and s-finimp from the list of object
+       files. Add a-fihema to the list of object files.
+       * par-ch4.adb:
+       Alphabetize the associations in type Is_Parameterless_Attribute.
+       * rtsfind.ads: Ada.Finalization_List.Controller and
+       System.Finalization_Implementation are no longer a GNAT unit.
+       Update the range of type Ada_Finalization_Child. Remove the following
+       recoverable entities:
+       
+          RE_Attach_To_Final_List
+          RE_Deep_Tag_Attach
+          RE_Finalize_List
+          RE_Finalize_One
+          RE_Finalizable_Ptr_Ptr
+          RE_Global_Final_List
+          RE_Limited_Record_Controller
+          RE_List_Controller
+          RE_Move_Final_List
+          RE_Record_Controller
+          RE_Simple_List_Controller
+       
+       Add the following recoverable entities:
+       
+          RE_Add_Offset_To_Address
+          RE_Allocate
+          RE_Base_Pool
+          RE_Deallocate
+          RE_Exception_Identity
+          RE_Finalization_Collection
+          RE_Finalization_Collection_Ptr
+          RE_Needs_Finalization
+          RE_Save_Library_Occurrence
+          RE_Set_Finalize_Address_Ptr
+          RE_Set_Storage_Pool_Ptr
+          RE_Storage_Count
+       * sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of
+       Name_uController.
+       * sem_aux.adb (First_Discriminant): Remove mention of Name_uController.
+       (First_Stored_Discriminant): Remove the mention of Name_uController.
+       * sem_aux.ads: Comment reformatting.
+       * sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery
+       to redecorate an already existing class-wide type.
+       (Decorate_Tagged_Type): New parameter profile and associated comment.
+       Create a "shadow class-wide type" for a shadow entity.
+       * sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting
+       of the final chain along with the associated comment.
+       * sem_ch3.adb (Access_Type_Declaration): Add new local variable
+       Full_Desig and set it to the full view of the designated type.
+       Initialize the finalization collection to empty.
+       (Build_Derived_Record_Type): Alphabetize local variables. Code
+       reformatting.
+       (Collect_Fixed_Components): Remove the mention of Name_uController.
+       (Create_Constrained_Components): Remove the mention of Name_uController.
+       (Make_Class_Wide_Type): Add specialized code to redecorate an existing
+       class-wide type of a shadow entity.
+       (Process_Full_View): Update the machinery which marks type
+       Limited_Controlled's entity as limited.
+       * sem_ch4.adb (Analyze_One_Call): Code reformatting.
+       * sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization
+       list, instead make a collection build-in-place formal.
+       * sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of
+       a designated type in order to establish a match between the renaming
+       and the renamed entity.
+       (Find_Selected_Component): Add guard to prevent spurious exceptions
+       from being raised on .NET/JVM.
+       * sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address
+       to the list of primitive that need special processing. Update arrays
+       C_Names and D_Names.
+       (Replace_Types): Handle class-wide types.
+       * sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a
+       different parameter profile, look at the first formal.
+       * sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and
+       use clauses for Exp_Util.
+       * sem_res.adb: Remove with and use clauses for Elists.
+       (Propagate_Coextensions): Removed.
+       (Resolve_Allocator): Do not propagate the list of coextensions from one
+       allocator to another.
+       * sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable
+       Deaccessed_T to Desig_Typ.
+       (Enter_Name): Remove the mention of Name_uController.
+       (Gather_Components): Remove the mention of Name_uController.
+       (Incomplete_Or_Private_View): New routine.
+       (Is_Coextension_Root): Removed.
+       (Is_Fully_Initialized_Type): Remove the mention of Name_uController.
+       * sem_util.ads (Incomplete_Or_Private_View): New routine.
+       (Is_Coextension_Root): Removed.
+       * s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion.
+       Controlled types are now derived from a null tagged record. Remove
+       types Finalizable_Ptr, Finalizable and Empty_Root_Controlled.
+       * sinfo.adb (Coextensions): Removed.
+       (Set_Coextensions): Removed.
+       * sinfo.ads: Remove Coextensions from the explanation of node fields
+       and its uses in nodes.
+       Update the field usage of N_Allocator.
+       (Coextensions): Removed along with its pragma Inline.
+       (Set_Coextensions): Removed along with its pragma Inline.
+       * snames.ads-tmpl: Remove names
+       
+         Name_uClean
+         Name_uController
+         Name_uFinal_List
+         Name_uLocal_Final_List
+         Name_Finalization_Root
+         Name_Next
+         Name_Prev
+       
+       Add names
+       
+         Name_uFinalizer
+         Name_Finalize_Address
+       * s-pooglo.adb (Allocate): Add overriding indicator.
+       (Deallocate): Add overriding indicator.
+       (Storage_Size): Add overriding indicator.
+       * s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather
+       than Finalize_Global_List.
+       (Null_Finalize_Global_List): Removed.
+       (Save_Library_Occurrence): New routine.
+       * s-soflin.ads: Remove variable Finalize_Global_List along with its
+       initialization. Add variable Finalize_Library_Objects along with its
+       pragma Export. Add variables Library_Exception and
+       Library_Exception_Set along with their pragma Export.
+       (Null_Finalize_Global_List): Removed.
+       (Save_Library_Occurrence): New routine.
+       * s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects
+       rather than Finalize_Global_List.
+       * tbuild.adb (Unchecked_Convert_To): Capture and set the parent field
+       of the constructed node.
+
+2011-08-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * link.c: Include "auto-host.h" before system headers.
+
+2011-08-03  Vincent Celier  <celier@adacore.com>
+
+       * make.adb (Gnatmake): Add to table Library_Projs only library projects
+       that are not extended. Do not check if a library project that is
+       extended should be regenerated. Do not add to table Library_Paths the
+       libraries that are in extended projects. Link only with libraries that
+       are in libray projects that are not extended.
+       * prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
+       for a library project that is extended.
+
+2011-08-03  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip
+       conforming subprogram renamings that appear to be completions if they
+       are not fully conformant.
+       Such renamings are homographs but not completions.
+       * sem_type.adb (Disambiguate): Handle disambiguation of overloaded
+       names in a subprogram renaming that appears in an instance.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but
+       not immutably limited, build actual subtype from expression to provide
+       proper bounds to caller.
+
+2011-08-03  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch8.adb: Minor comment correction.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when
+       returning a limited array, use an extended return statement.
+
+2011-08-03  Vincent Celier  <celier@adacore.com>
+
+       * make.adb (Initialize): If --subdirs= is used, but no project file is
+       specified, attempt to create the specify subdir if it does not already
+       exist and use it as the object directory as if -D had been specified.
+
+2011-08-03  Arnaud Charlet  <charlet@adacore.com>
+
+       * s-tpopsp-vms.adb: New file.
+       * s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS.
+       * gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new
+       package.
+
+2011-08-03  Yannick Moy  <moy@adacore.com>
+
+       * cstand.adb (Create_Standard): select Universal_Integer as an ALFA type
+       * sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA
+       * sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to
+       detect that an array has static bounds.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * exp_dist.adb: Minor reformatting.
+
+2011-08-03  Arnaud Charlet  <charlet@adacore.com>
+
+       * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb
+       (ATCB_Key): Removed, not always used.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads,
+       clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove
+       most remaining global variables.
+
+2011-08-03  Robert Dewar  <dewar@adacore.com>
+
+       * gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads,
+       prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor
+       reformatting.
+
+2011-08-03  Javier Miranda  <miranda@adacore.com>
+
+       * exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals
+       that must be passed by copy in VM targets.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which
+       duplicates a similar htable now in the project tree.
+
+2011-08-03  Claire Dross  <dross@adacore.com>
+
+       * a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
+       a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element,
+       Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend,
+       Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap,
+       Splice, First, First_Element, Last, Last_Element, Next, Previous, Find,
+       Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity,
+       Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure
+       update.
+
+2011-08-03  Arnaud Charlet  <charlet@adacore.com>
+
+       * s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb
+       (ATCB_Key): Removed, not always used.
+       * s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from
+       s-taprop-posix.adb.
+       * s-tpopsp-tls.adb: New file.
+       * gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on
+       x86/x64/ia64/powerpc/sparc Linux.
+
+2011-08-03  Arnaud Charlet  <charlet@adacore.com>
+
+       * system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.
+       * gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * rtsfind.ads, exp_dist.adb, exp_dist.ads
+       (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
+       Fix type selection for mapping integer types to PolyORB types.
+
+2011-08-03  Bob Duff  <duff@adacore.com>
+
+       * sem_ch7.adb: Minor comment clarification.
+
+2011-08-03  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get
+       an error analyzing a choice, skip further processing. Further
+       processing could cause a crash or cascade errors.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,
+       prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,
+       prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,
+       prj-env.ads (Shared_Project_Tree_Data): new type
+       An aggregate project and its aggregated trees need to share the common
+       data structures used for lists of strings, packages,... This makes the
+       code simpler since otherwise we have to pass the root tree (also used
+       for the configuration file data) in addition to the current project
+       tree. This also avoids ambiguities as to which tree should be used.
+       And finally this saves a bit of memory.
+       (For_Every_Project_Imported): new parameter Tree.
+       Since aggregated projects are using a different tree, we need to let
+       the caller know which tree to use to manipulate the returned project.
+
+2011-08-03  Robert Dewar  <dewar@adacore.com>
+
+       * prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb,
+       prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads,
+       lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb,
+       prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting.
+
+2011-08-03  Javier Miranda  <miranda@adacore.com>
+
+       * exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:
+       Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.
+
+2011-08-03  Bob Duff  <duff@adacore.com>
+
+       * sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on
+       the Base_Type.
+
+2011-08-03  Joel Brobecker  <brobecker@adacore.com brobecker>
+
+       * g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,
+       g-sehash.ads: Fix typo. Update header.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place
+       expansion.
+
+2011-08-03  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider
+       prefixes of private types along with records, since the selector may be
+       a discriminant.
+       * sem_res.adb (Resolve_Selected_Component): Consider prefixes of
+       private types along with records, since the selector may be a
+       discriminant.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-pp.adb (Pretty_Print): remove trailing blank line in the file
+
+2011-08-03  Javier Miranda  <miranda@adacore.com>
+
+       * sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of
+       Tagged_Type_Expansion.
+
+2011-08-03  Yannick Moy  <moy@adacore.com>
+
+       * sem_res.adb
+       (Resolve_Op_Concat_Arg): do not issue a SPARK violation when argument of
+       concatenation is the name of a constant
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads,
+       prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms
+       (Process_Declarative_Items): new parameter Child_Env.
+
+2011-08-03  Yannick Moy  <moy@adacore.com>
+
+       * alfa.ads Update format of ALFA section in ALI file in order to add a
+       mapping from bodies to specs when both are present
+       (ALFA_Scope_Record): add components for spec file/scope
+       * get_alfa.adb (Get_ALFA): read the new file/scope for spec when present
+       * lib-xref-alfa.adb
+       (Collect_ALFA): after all scopes have been collected, fill in the spec
+        information when relevant
+       * put_alfa.adb (Put_ALFA): write the new file/scope for spec when
+       present.
+
+2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing
+       code unit to decide whether to add internally generated subprograms.
+       
+2011-08-03  Javier Miranda  <miranda@adacore.com>
+
+       * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.
+       * exp_ch9.adb
+       (Build_Simple_Entry_Call): Handle actuals that must be handled by copy
+       in VM targets.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): now shares
+       code with Makeutl.Get_Switches.
+       * prj-tree.adb: Update comment.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote
+       subprogram with a limited formal that does not support external
+       streaming.
+
+2011-08-03  Yannick Moy  <moy@adacore.com>
+
+       * get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of
+       continuation line
+       * lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are
+       not from current unit in two phases, because it is not possible to
+       change the table while iterating over its content.
+       * put_alfa.adb (Put_ALFA): reset current file/scope at each new entity
+
+2011-08-03  Sergey Rybin  <rybin@adacore.com>
+
+       * vms_data.ads: Add qualifier for gnatmetric --no-static-loop option
+       * gnat_ugn.texi: Update description of complexity metrics (gnatmetric)
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate
+       and the component type is composite, this is ambiguous for predefined
+       concatenation, but if the node is not overloaded and the entity is a use
+       -defined function its profile can be used to resolve that aggregate.
+
+2011-08-03  Robert Dewar  <dewar@adacore.com>
+
+       * exp_ch4.adb: Minor code cleanup.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * exp_dist.adb: Do not generate distribution stubs if serious errors
+       have been diagnosed.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch4.adb (Try_Primitive_Operation): when checking the validity of
+       the first formal of a primitive operation, go to the base type to
+       handle properly an access to a derived type with constrained
+       discriminants.
+       * sem_type.adb (Disambiguate): an immediately visible operator hides a
+       user-defined function that is only use-visible.
+
+2011-08-03  Robert Dewar  <dewar@adacore.com>
+
+       * sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb,
+       make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb,
+       fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb,
+       prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads,
+       sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb,
+       prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb,
+       prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads,
+       alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting
+
+2011-08-03  Robert Dewar  <dewar@adacore.com>
+
+       * repinfo.adb (List_Mechanism): Add handling of
+       Convention_Ada_Pass_By_XXX.
+       * sem_mech.adb (Set_Mechanism): Ditto.
+       * sem_prag.adb (Process_Convention): Add entries for
+       Convention_Ada_Pass_By_XXX.
+       * snames.adb-tmpl, snames.ads-tmpl: Ditto.
+
+2011-08-03  Pascal Obry  <obry@adacore.com>
+
+       * makeutl.adb: Minor reformatting.
+
+2011-08-03  Vincent Celier  <celier@adacore.com>
+
+       * fname-uf.adb
+       (Get_File_Name) If the file cannot be found when there are no config
+       pragmas file and May_Fail is True, return No_File instead of the file
+       name, to be consistent.
+
+2011-08-03  Pascal Obry  <obry@adacore.com>
+
+       * adaint.c (__gnat_is_executable_file_attr): Avoid access
+       to null pointer.
+
+2011-08-03  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch13.adb
+       (Same_Representation): In VM targets the representation of arrays with
+       aliased components differs from arrays with non-aliased components.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do
+       not systematically lower case attribute indexes that contain no "."
+       Fix definition of several Naming attributes, which take
+       a unit name as index and therefore should be case insensitive.
+       Minor refactoring (reduce length of variable names).
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * makeutl.adb, makeutl.ads (Get_Switches): new subprogram.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
+       prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb,
+       prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
+       prj-tree.ads (Prj.Tree.Environment): new type.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb,
+       prj-tree.adb, prj-tree.ads (Environment): new type.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-tree.ads: Remove unused variable.
+
+2011-08-03  Yannick Moy  <moy@adacore.com>
+
+       * restrict.adb (Restriction_Msg): set "SPARK" all in upper case for
+       issuing messages related to SPARK restriction violation.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb: guard against error nodes in return statements.
+
+2011-08-03  Arnaud Charlet  <charlet@adacore.com>
+
+       * errout.adb (Error_Msg_Internal): the main unit has not been read yet,
+       a warning can only appear on a configuration file, so emit warning
+       without further checks.
+
+2011-08-03  Arnaud Charlet  <charlet@adacore.com>
+
+       * s-interr.ads: add overriding keyword.
+
+2011-08-03  Geert Bosch  <bosch@adacore.com>
+
+       * exp_attr.adb: Fix minor typo.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * par-ch4.adb: improve error recovery.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb,
+       prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize
+       to Errout_Handling.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-dect.adb (Parse_Attribute_Declaration): make sure we can use
+       "external" as an attribute name in aggregate projects.
+
+2011-08-03  Jose Ruiz  <ruiz@adacore.com>
+
+       * s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU
+       uses CPU numbers starting 1, while VxWorks uses CPU numbers starting
+       from 0, so we need to adjust.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb,
+       prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type.
+
+2011-08-03  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK
+       restriction on overloaded entity if the entity is not an operator.
+
+2011-08-03  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,
+       restrict.ads: Rename remaining Check_Formal_Restriction* into
+       Check_SPARK_Restriction*.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,
+       prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its
+       qualifier.
+       (Project_Empty): removed
+       (Empty_Project): new parameter Qualifier
+       This is used to have fields specific to aggregate projects, cleaner
+       New field to store the list of aggregated projects.
+       (Check_Aggregate_Project): removed
+       (Process_Aggregated_Projects, Free): new subprograms.
+
+2011-08-03  Olivier Hainque  <hainque@adacore.com>
+
+       * tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an
+       explicit dereference of an unconstrained type, create a constrained
+       subtype for it, as is done for function calls that return an
+       unconstrained type.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * g-pehage.adb (Finalize): Avoid possible double-free.
+
+2011-08-03  Steve Baird  <baird@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand
+       Elab_Spec/Body attrs in CodePeer_Mode.
+
+2011-08-03  Javier Miranda  <miranda@adacore.com>
+
+       * exp_aggr.adb (Flatten): Convert to positional form aggregates whose
+       low bound is not known at compile time but they have no others choice.
+       Done because in this case the bounds can be obtained directly from the
+       aggregate.
+
+2011-08-03  Ed Falis  <falis@adacore.com>
+
+       * s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs
+       on VxWorks SMP. Remove unusable constant ANY_CPU.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb,
+       clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb,
+       prj-env.ads (Prj.Env.Initialize_Default_Project_Path,
+       Prj.Env.Initialize_Empty): new subprograms
+       (Get_Env, Find_Project): remove parameter Target_Name.
+
+2011-08-03  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal
+       as a condition for the delayed call to Derived_Subprograms done for the
+       case of the rewriting of a derived type that constrains the
+       discriminants of its parent type.
+       Avoids redundant subprogram derivations for private subtype derivations.
+
+2011-08-03  Javier Miranda  <miranda@adacore.com>
+
+       * exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of
+       Build_Record_Aggr_Code.
+       (Build_Record_Aggr_Code): Add missing support to initialize hidden
+       discriminants in extension aggregates.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-pp.adb (Print): also output project qualifiers, since in
+       particular "aggregate" is mandatory in an aggregate project.
+
+2011-08-03  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:
+       (Debug_Output): new function.
+
+2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gnat_ugn.texi: Document -Wstack-usage.
+       * gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * sem_prag.adb Issue an error (not a warning) when a C++ type does not
+       have keyword LIMITED.
+
+2011-08-03  Yannick Moy  <moy@adacore.com>
+
+       * alfa.adb, alfa.ads, alfa_test.adb: New files.
+       * ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
+       (Scan_ALI): do not issue a fatal error if parsing known lines after Xref
+       section (does not happen in compiler, only if code directly calls
+       Scan_ALI).
+       * get_alfa.adb, get_alfa.ads: New files.
+       * lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
+       needed.
+       * lib-xref-alfa.adb: New file.
+       * lib-xref.adb, lib-xref.ads
+       (Xref_Entry): redefine information needed in cross-references for ALFA.
+       Push ALFA treatments in separated local package.
+       (Enclosing_Subpragram_Or_Package): treat specially subprogram
+       identifiers. Return entity of package body instead of spec. Return
+       Empty for a scope with no location.
+       (Generate_Reference): adapt to new components for ALFA information.
+       Remove the need for D references on definitions.
+       (Is_Local_Reference): moved to ALFA local package
+       (Output_References): extract subfunction as Extract_Source_Name
+       (Output_Local_References): remove procedure, replaced by filtering of
+       cross-references in package ALFA and printing in Put_ALFA.
+       (Write_Entity_Name): remove procedure
+       * lib.adb, lib.ads (Extract_Source_Name): extract here function to
+       print exact name of entity as it appears in source file
+       (Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
+       * put_alfa.adb, put_alfa.ads: New files.
+       * xref_lib.adb (Search_Xref): protect read of cross-references against
+       reading other sections of the ALI file, in gnatxref
+       (Search): protect read of cross-references against reading other
+       sections of the ALI file, in gnatfind.
+       * gcc-interface/Make-lang.in: Update dependencies.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * sem_ch3.adb: Minor reformatting.
+
+2011-08-03  Jose Ruiz  <ruiz@adacore.com>
+
+       * s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
+       raising an exception.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
+       type, always use 1 as the lower bound or string, even if lower bound of
+       context is not static, to handle properly null strings in a non-static
+       context.
+
+2011-08-03  Bob Duff  <duff@adacore.com>
+
+       * sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
+       always legal on the right-hand side of an assignment statement; there
+       is always an applicable index constraint in this case. Therefore, the
+       check for Pkind = N_Assignment_Statement is now unconditional -- it
+       doesn't depend on whether Is_Constrained (Typ).
+
+2011-08-03  Robert Dewar  <dewar@adacore.com>
+
+       * exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Build_Itype_Reference): do not create an itype reference
+       for an itype created within a generic unit.
+
+2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline
+       suppresses all inlining.
+
+2011-08-03  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,
+       exp_aggr.adb: Minor reformatting.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of
+       tagged assignment when discriminant checks are suppressed. This is
+       useless and extremely costly in terms of static stack usage.
+
+2011-08-03  Bob Duff  <duff@adacore.com>
+
+       * sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances
+       of generics, because this leads to the wrong entity in the wrong scope,
+       causing (e.g.) pragma Export_Procedure to get an error if the entity is
+       an instance.
+       (Process_Interface_Name): Follow Alias for instances of generics, to
+       correct for the above change.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value
+       is an integer literal it is always safe to replace the reference. In
+       addition, if the reference appears in the generated code for an object
+       declaration it is necessary to copy because otherwise the reference
+       might be to the uninitilized value of the discriminant of the object
+       itself.
+
+2011-08-03  Pascal Obry  <obry@adacore.com>
+
+       * adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no
+       ACL used, in this case we want to check for ending .exe, not .exe
+       anywhere in the path.
+
+2011-08-03  Sergey Rybin  <rybin@adacore.com>
+
+       * tree_io.ads (ASIS_Version_Number): Update because of the changes in
+       the tree structure (semantic decoration of references to record
+       discriminants).
+
+2011-08-03  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete
+       choices of a named array aggregate, bail out when any choices are
+       marked as Errors_Posted.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope
+       in which entity is frozen, to handle properly loop variables in
+       iterators.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the
+       subtype is not static, compute the upper bound using attributes, to
+       handle properly index types that are not integer types.
+
+2011-08-03  Bob Duff  <duff@adacore.com>
+
+       * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs.
+       Update copyright notice.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Build_Discriminant_Constraints): Only use
+       Original_Discriminant if within an instance.
+       * sem_ch4.adb (Analyze_Selected_Component): Ditto.
+
+2011-08-03  Thomas Quinot  <quinot@adacore.com>
+
+       * einfo.ads: Minor reformatting.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a
+       composite type with an unfrozen subcomponent, in the profile of a
+       primitive operation.
+
+2011-08-03  Robert Dewar  <dewar@adacore.com>
+
+       * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting.
+
+2011-08-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an
+       unconstrained type with discriminants is initialized with an aggregate,
+       use the constrained subtype of the aggregate as the type of the object,
+       because it is immutable, and this allows the back-end to generate no
+       code for the object declaration.
+
 2011-08-03  Robert Dewar  <dewar@adacore.com>
 
        * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where
This page took 0.086908 seconds and 5 git commands to generate.