+2011-08-04 Emmanuel Briot <briot@adacore.com>
+
+ * make.adb, makeutl.adb, makeutl.ads (Make): major refactoring.
+ Create several new subprograms to move code out of Make. This makes the
+ code more readable, removes code duplication, and is a preparation work
+ for adding support for aggregate projects.
+
+2011-08-04 Tristan Gingold <gingold@adacore.com>
+
+ * s-po32gl.ads, s-po32gl.adb: New files.
+ * exp_ch7.ads (Get_Global_Pool_For_Access_Type): New function.
+ * exp_ch7.adb (Get_Global_Pool_For_Access_Type): New function.
+ (Build_Finalization_Collection): Use it.
+ * exp_ch4.adb (Complete_Controlled_Allocation): Ditto.
+ * rtsfind.ads: System_Pool_32_Global, Re_Global_Pool_32_Object: New
+ literals.
+ * gcc-interface/Makefile.in: Use s-po32gl.o on VMS.
+ * gcc-interface/Make-lang.in: Update dependencies.
+
+2011-08-04 Emmanuel Briot <briot@adacore.com>
+
+ * makeutl.adb (Complete_Mains): add support for specs with no suffix on
+ the command line.
+
+2011-08-04 Emmanuel Briot <briot@adacore.com>
+
+ * make.adb, makeutl.adb (Complete_Mains): if a main specified on the
+ command line is not a file name, also check whether it could be a unit
+ name.
+
+2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * bindgen.adb (Gen_Finalize_Library_Ada): Factor out code to generate
+ the header of the finalization routine.
+ If the unit has no finalizer but is a body whose spec has one, then
+ generate the decrement of the elaboration entity only.
+ If the unit has a finalizer and is a spec, then do not generate the
+ decrement of the elaboration entity.
+ (Gen_Finalize_Library_C): Likewise.
+
+2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch7.adb (Alignment_Of): New subsidiary routine.
+ (Bounds_Size_Expression): Removed.
+ (Double_Alignment_Of): New subsidiary routine.
+ (Make_Finalize_Address_Stmts): New local variable Index_Typ. Account
+ for a hole in the dope vector of unconstrained arrays due to different
+ index and element alignments.
+
+2011-08-04 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_res.adb (Resolve_Allocator): diagnose task allocator that will
+ raise program_error because body has not been seen yet.
+
+2011-08-04 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch10.adb (Analyze_With_Clause): Protect against child unit with
+ an unresolved name.
+
+2011-08-04 Vincent Celier <celier@adacore.com>
+
+ * makeutl.adb (Do_Complete): Check absolute paths in canonical forms
+
+2011-08-04 Yannick Moy <moy@adacore.com>
+
+ * alfa.adb, alfa.ads (Unique_Defining_Entity): move function from here
+ * sem_util.adb, sem_util.ads (Unique_Defining_Entity): ...to here
+
+2011-08-04 Thomas Quinot <quinot@adacore.com>
+
+ * sem_ch12.adb (Analyze_Package_Instantiation): Do not omit body for
+ instantiation in RCI.
+
+2011-08-04 Emmanuel Briot <briot@adacore.com>
+
+ * make.adb: Share more code with gprbuild
+
+2011-08-04 Emmanuel Briot <briot@adacore.com>
+
+ * projects.texi: Added documentation for the IDE'Gnat project file
+ attribute.
+
+2011-08-04 Nicolas Roche <roche@adacore.com>
+
+ * gnat_rm.texi: Minor editing.
+
+2011-08-04 Javier Miranda <miranda@adacore.com>
+
+ * bindgen.adb (Gen_Adafinal_Ada): Do not differentiate the main case
+ and the library case for VM targets.
+ (Gen_Adainit_Ada): Likewise.
+
+2011-08-04 Robert Dewar <dewar@adacore.com>
+
+ * g-altive.ads: Minor comment updates.
+ * prj-nmsc.adb: Minor reformatting.
+
+2011-08-04 Javier Miranda <miranda@adacore.com>
+
+ * opt.ads
+ (Normalize_Scalars_Config): Value of the configuration switch set by
+ pragma Normalize_Scalars when it appears in the gnat.adc file.
+ (Normalize_Scalars): New field for record Config_Switches_Type. Used
+ to save and restore settings of this pragma.
+ * opt.adb
+ (Register_Opt_Config_Switches, Save_Opt_Config_Switches,
+ Restore_Opt_Config_Switches): Add missing support for Normalize_Scalars.
+
+2011-08-04 Vincent Celier <celier@adacore.com>
+
+ * gnat_ugn.texi: Document gnatlink options -M and -M=mapfile
+
+2011-08-04 Arnaud Charlet <charlet@adacore.com>
+
+ * makeutl.adb: Minor reformatting.
+
+2011-08-04 Olivier Hainque <hainque@adacore.com>
+
+ * g-altive.ads: Update comments to reflect that only the soft
+ binding is available today.
+
+2011-08-04 Robert Dewar <dewar@adacore.com>
+
+ * bindgen.adb, einfo.adb, sem_ch12.adb, s-tasren.adb, sem_res.adb,
+ makeutl.adb, prj-nmsc.adb, opt.ads, prj-env.adb: Minor reformatting
+ * gcc-interface/Make-lang.in: Update dependencies.
+
+2011-08-04 Arnaud Charlet <charlet@adacore.com>
+
+ * prj-env.adb: Remove local debug traces.
+
+2011-08-04 Yannick Moy <moy@adacore.com>
+
+ * checks.adb (Apply_Float_Conversion_Check): correct a typo where Lo_OK
+ was used instead of Hi_OK, which could cause a read of an uninitialized
+ value later on. Detected while working on the new warning.
+ * exp_ch9.adb (Expand_N_Entry_Declaration): remove useless assignment
+ to local variable.
+ * sem_ch5.adb (Analyze_Assignment): set the last assignment component
+ in more cases, in order to detect more unreferenced values.
+ * sem_util.adb, sem_util.ads (Get_Enclosing_Object): return enclosing
+ object for expression, if any.
+
+2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_intr.adb (Expand_Binary_Operator_Call): Look at the RM size of
+ the operand types instead of the Esize.
+
+2011-08-04 Steve Baird <baird@adacore.com>
+
+ * switch-b.adb (Scan_Binder_Switches): Add -P binder switch, used to
+ enable CodePeer_Mode.
+ * bindusg.adb (Display): Add help message describing -P binder switch.
+ * gnat_ugn.texi: Document -P binder switch.
+ * bindgen.adb (Gen_Main_Ada): If CodePeer_Mode is set, then call the
+ user-defined main program directly.
+ (Gen_Output_File_Ada): If CodePeer_Mode is set, generate a with of the
+ user-defined main program in the context clause of the package body.
+
+2011-08-04 Yannick Moy <moy@adacore.com>
+
+ * alfa.adb, alfa.ads (Get_Entity_For_Decl): remove function, partial
+ duplicate of Defining_Entity
+ (Get_Unique_Entity_For_Decl): rename function into
+ Unique_Defining_Entity
+ * einfo.adb, einfo.ads (Is_In_ALFA, Body_Is_In_ALFA): remove flags
+ (Formal_Proof_On): remove synthesized flag
+ * cstand.adb, sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
+ sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_res.adb, sem_util.adb,
+ sem_util.ads, stand.ads: Remove treatment associated to entities in ALFA
+ * sem_prag.adb (Analyze_Pragma): remove special treatment for pragma
+ Annotate (Formal_Proof)
+
+2011-08-04 Emmanuel Briot <briot@adacore.com>
+
+ * prj-env.adb (Create_Config_Pragmas_File): fix handling of multi-unit
+ source files with non-standard naming schemes, in imported projects
+
+2011-08-04 Emmanuel Briot <briot@adacore.com>
+
+ * makeutl.adb (Complete_Mains): when a multi-unit source file is
+ specified on the gprbuild command line, we need to compile all units
+ within that file, not just the first one we find
+ Fix error message for mains that are not found.
+
+2011-08-04 Thomas Quinot <quinot@adacore.com>
+
+ * sem_ch6.adb: Update comment.
+ * sem_ch12.adb: Minor reformatting.
+
+2011-08-04 Bob Duff <duff@adacore.com>
+
+ * s-tasren.adb (Task_Do_Or_Queue): Previous code was reading
+ Acceptor.Terminate_Alternative without locking Acceptor, which causes a
+ race condition whose symptom is to fail to lock Parent. That, in turn,
+ causes Parent.Awake_Count to be accessed without locking Parent, which
+ causes another race condition whose symptom is that Parent.Awake_Count
+ can be off by 1 (either too high or too low). The solution is to lock
+ Parent unconditionally, and then lock Acceptor, before reading
+ Acceptor.Terminate_Alternative.
+
+2011-08-04 Arnaud Charlet <charlet@adacore.com>
+
+ * debug.adb: Update comment.
+
+2011-08-04 Robert Dewar <dewar@adacore.com>
+
+ * par_sco.adb, exp_util.adb, make.adb, a-tags.adb, sem_prag.adb,
+ sem_util.adb, sem_attr.adb, exp_ch4.adb, g-comlin.adb, g-comlin.ads,
+ exp_ch6.adb: Minor reformatting.
+
+2011-08-04 Gary Dismukes <dismukes@adacore.com>
+
+ * gnat_ugn.texi: Add sentence about the case of compile-time-detected
+ checks for -gnateE.
+
+2011-08-04 Ed Schonberg <schonberg@adacore.com>
+
+ * gnat_rm.texi: update Ravenscar desription to reflect Ada2012 RM.
+
+2011-08-04 Thomas Quinot <quinot@adacore.com>
+
+ * sinfo.ads: Minor reformatting.
+
+2011-08-04 Emmanuel Briot <briot@adacore.com>
+
+ * makeutl.adb, makeutl.ads, prj-nmsc.adb (Complete_Mains): report error
+ even if there is no location.
+
+2011-08-04 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_res.adb, sem_ch4.adb: move check for restriction
+ No_Task_Hierarchy to resolve_allocator.
+
+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
+ comparison operand is variable, and turns out to be zero or negative.
+
+2011-08-03 Javier Miranda <miranda@adacore.com>
+
+ * exp_intr.adb
+ (Expand_Dispatching_Constructor_Call): Disable expansion of
+ code required for native targets. Done to avoid generating
+ references to unavailable runtime entities in VM targets.
+ * exp_ch3.adb
+ (Expand_N_Object_Declaration): Add missing support to handle
+ the explicit initialization of class-wide interface objects.
+ Fix documentation.
+
+2011-08-03 Matthew Heaney <heaney@adacore.com>
+
+ * a-cobove.adb (Merge): Move source onto target, instead of using Assign
+
+2011-08-03 Matthew Heaney <heaney@adacore.com>
+
+ * a-cbdlli.adb (Splice): move source items from first to last
+
+2011-08-03 Yannick Moy <moy@adacore.com>
+
+ * sem_util.ads: comment added.
+
+2011-08-03 Javier Miranda <miranda@adacore.com>
+
+ * exp_aggr.adb
+ (Expand_Record_Aggregate): In VM targets disable the expansion into
+ assignments of aggregates whose type is not known at compile time.
+
+2011-08-03 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for
+ protected entries and task entries, to build the proper renaming
+ declaration for entry formals, used in debugging.
+ * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry
+ parameters in the same way.
+
+2011-08-02 Robert Dewar <dewar@adacore.com>
+
+ * a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,
+ sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or
+ code reorganization.
+
+2011-08-02 Robert Dewar <dewar@adacore.com>
+
+ * debug.adb: Debug flag d.P to suppress length comparison optimization
+ * exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize
+ comparison of Length by comparing First/Last instead.
+
+2011-08-02 Matthew Heaney <heaney@adacore.com>
+
+ * a-cobove.ads: Code clean up.
+
2011-08-02 Vincent Celier <celier@adacore.com>
* adaint.c (file_names_case_sensitive_cache): New static int.