[multiple changes]
[gcc.git] / gcc / ada / ChangeLog
index d96dd9b83b95219f175f86147e85c6a5788295b2..15dc2189fe7adef3c89a9303daf3ab83c9c4fd5d 100644 (file)
+2015-05-22  Bob Duff  <duff@adacore.com>
+
+       * a-convec.ads, a-convec.adb (Append): Check for fast path. Split
+       out slow path into separate procedure. Inline Append. Fast path
+       now avoids calling Insert.
+       (Finalize): Do the busy checking last, so the container gets emptied.
+       (Insert, Insert_Space): Remove redundancy.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * switch-c.adb (Scan_Front_End_Switches): Insist on -gnatc
+       for -gnatd.V.
+
+2015-05-22  Arnaud Charlet  <charlet@adacore.com>
+
+       * gnatvsn.ads: Minor code reorg to remember more easily to update
+       variables.
+
+2015-05-22  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch10.adb (Analyze_With_Clause): In ASIS_Mode, a
+       limited_with clause on a predefined unit is not transformed into
+       a regular with_clause, to preserve the original tree structure.
+       * sinfo.ads (N_With_Clause): Add comment on handling of
+       Limited_With.
+       * sem_ch10.adb: Minor reformatting.
+
+2015-05-22  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch8.adb (Freeze_Profile): A limited view of a type in
+       the profile of a subprogram renaming does not require freezing,
+       because it is declared in a different unit.
+
+2015-05-22  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_aggr.adb (Get_Constraint_Association): If type (of ancestor
+       composite type) is private, go to full view. This was previously
+       done only in an instance context, but is happen whenever a chain
+       of private extensions includes one inherited discriminant.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * einfo.ads: Minor comment updates.
+       * exp_unst.adb: Move Subps table to spec Don't remove old entries
+       from table Add Last field to record last entry used.
+       * exp_unst.ads: Move Subps table here from body So that Cprint
+       can access saved values.
+
+2015-05-22  Bob Duff  <duff@adacore.com>
+
+       * a-cdlili.adb, a-cdlili.ads, a-cohama.adb, a-cohama.ads,
+       * a-cohase.adb, a-cohase.ads, a-convec.adb, a-convec.ads,
+       * a-coorma.adb, a-coorma.ads, a-coorse.adb, a-coorse.ads:
+       (Pseudo_Reference, Element_Access, Get_Element_Access): New
+       declarations added for use by performance improvements in exp_ch5.adb.
+       * snames.ads-tmpl: New names referenced by exp_ch5.adb.
+       * exp_ch5.adb: Speed up "for ... of" loops for predefined containers.
+       Instead of doing literally what the RM calls for, we do something
+       equivalent that avoids expensive operations inside the loop. If the
+       container package has appropriate Next, Pseudo_Reference,
+       Element_Access, Get_Element_Access declarations, we invoke the
+       optimization.
+       * snames.ads-tmpl: Note speed improvement.
+
+2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo.ads (Is_Atomic_Or_VFA): Move to XEINFO INLINES section.
+       * xeinfo.adb: Replace a-einfo.h with einfo.h throughout.
+       Add pattern to translate "or else" into "||".
+
+2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo.ads (Has_Volatile_Full_Access): Rename into...
+       (Is_Volatile_Full_Access): ...this.
+       (Set_Has_Volatile_Full_Access): Rename into...
+       (Set_Is_Volatile_Full_Access): ...this.
+       * einfo.adb (Has_Volatile_Full_Access): Rename into...
+       (Is_Volatile_Full_Access): ...this.
+       (Set_Has_Volatile_Full_Access): Rename into...
+       (Set_Is_Volatile_Full_Access): ...this.
+       (Is_Atomic_Or_VFA): Adjust to above renaming.
+       * errout.adb (Special_Msg_Delete): Likewise.
+       * exp_pakd.adb (Install_PAT): Likewise.
+       * freeze.adb (Freeze_Array_Type): Likewise.
+       * sem_ch8.adb (Analyze_Object_Renaming): Likewise.
+       * sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Likewise.
+       (Inherit_Aspects_At_Freeze_Point): Likewise.
+       * sem_prag.adb (Set_Atomic_VFA): Likewise.
+       (Process_Atomic_Independent_Shared_Volatile): Likewise.
+       * sem_util.adb (Is_Atomic_Or_VFA_Object): Likewise.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * exp_ch5.adb, layout.adb, einfo.adb, einfo.ads, sem_prag.adb,
+       freeze.adb, freeze.ads, sem_util.adb, sem_util.ads, exp_ch2.adb,
+       exp_ch4.adb, errout.adb, exp_aggr.adb, sem_ch13.adb: This is a general
+       change that deals with the fact that most of the special coding for
+       Atomic should also apply to the case of Volatile_Full_Access.
+       A new attribute Is_Atomic_Or_VFA is introduced, and many of the
+       references to Is_Atomic now use this new attribute.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * exp_ch4.adb (Expand_N_Op_Eq): Introduce 'Machine for 'Result
+       comparison.
+
+2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sprint.adb (Source_Dump): When generating debug files, deal
+       with the case of a stand-alone package instantiation by dumping
+       together the spec and the body in the common debug file.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch13.adb (Minimum_Size): Size is zero for null range
+       discrete subtype.
+
+2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * einfo.adb (Anonymous_Master): This attribute now applies
+       to package and subprogram bodies.
+       (Set_Anonymous_Master): This attribute now applies to package and
+       subprogram bodies.
+       (Write_Field36_Name): Add output for package and subprogram bodies.
+       * einfo.ads Update the documentation on attribute Anonymous_Master
+       along with occurrences in entities.
+       * exp_ch4.adb (Create_Anonymous_Master): Reimplemented to
+       handle spec and body anonymous masters of the same unit.
+       (Current_Anonymous_Master): Reimplemented. Handle a
+       package instantiation that acts as a compilation unit.
+       (Insert_And_Analyze): Reimplemented.
+
+2015-05-22  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch10.adb (Analyze_With_Clause): A limited_with_clause on a
+       predefined unit is treated as a regular with_clause.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch12.adb, prj.ads, makeutl.ads, sem_ch6.adb, prj-nmsc.adb,
+       prj-conf.adb, sem_disp.adb: Minor reformatting.
+
+2015-05-22  Vincent Celier  <celier@adacore.com>
+
+       * clean.adb (Parse_Cmd_Line): For native gnatclean, check
+       for switch -P and, if found and gprclean is available, invoke
+       silently gprclean.
+       * make.adb (Initialize): For native gnatmake, check for switch -P
+       and, if found and gprbuild is available, invoke silently gprbuild.
+
+2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch13.adb (Validate_Unchecked_Conversions): Also issue
+       specific warning for discrete types when the source is larger
+       than the target.
+
+2015-05-22  Ed Schonberg  <schonberg@adacore.com>
+
+       * einfo.ads, einfo.adb (Incomplete_Actuals): New attribute of
+       package instantiations. Holds the list of actuals in the instance
+       that are incomplete types, to determine where the corresponding
+       instance body must be placed.
+       * sem_ch6.adb (Conforming_Types): An incomplete type used as an
+       actual in an instance matches an incomplete formal.
+       * sem_disp.adb (Check_Dispatching_Call): Handle missing case of
+       explicit dereference.
+       (Inherited_Subprograms): In the presence of a limited view there
+       are no subprograms to inherit.
+       * sem_ch12.adb (Preanalyze_Actuals): Build list of incomplete
+       actuals of instance, for later placement of instance body and
+       freeze nodes for actuals.
+       (Install_Body): In the presence of actuals that incomplete types
+       from a limited view, the instance body cannot be placed after
+       the declaration because full views have not been seen yet. Any
+       use of the non-limited views in the instance body requires
+       the presence of a regular with_clause in the enclosing unit,
+       and will fail if this with_clause is missing.  We place the
+       instance body at the beginning of the enclosing body, which is
+       the unit being compiled, and ensure that freeze nodes for the
+       full views of the incomplete types appear before the instance.
+
+2015-05-22  Pascal Obry  <obry@adacore.com>
+
+       * makeutl.ads, prj-conf.adb, prj-nmsc.adb, prj.ads
+       (In_Place_Option): Removed.
+       (Relocate_Build_Tree_Option): New constant.
+       (Root_Dir_Option): New constant.
+       (Obj_Root_Dir): Removed.
+       (Build_Tree_Dir): New variable.
+       (Root_Src_Tree): Removed.
+       (Root_Dir): New variable.
+       * prj-conf.adb (Get_Or_Create_Configuration_File): Add check
+       for improper relocation.
+       * prj-nmsc.adb (Locate_Directory): Add check for improper
+       relocation.
+
+2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * einfo.adb (Default_Init_Cond_Procedure): Code cleanup. The
+       attribute now applies to the base type.
+       (Has_Default_Init_Cond): Now applies to the base type.
+       (Has_Inherited_Default_Init_Cond): Now applies to the base type.
+       (Set_Default_Init_Cond_Procedure): Code cleanup. The attribute now
+       applies to the base type.
+       (Set_Has_Default_Init_Cond): Now applies to the base type.
+       (Set_Has_Inherited_Default_Init_Cond): Now applies to the base type.
+       * exp_ch3.adb (Expand_N_Object_Declaration): No need to use the
+       base type when adding a call to the Default_Initial_Condition.
+
+2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * einfo.adb: Node36 is now used as Anonymous_Master. Flag253
+       is now unused.
+       (Anonymous_Master): New routine.
+       (Has_Anonymous_Master): Removed.
+       (Set_Anonymous_Master): New routine.
+       (Set_Has_Anonymous_Master): Removed.
+       (Write_Entity_Flags): Remove the output for Has_Anonymous_Maser.
+       (Write_Field36_Name): Add output for Anonymous_Master.
+       * einfo.ads Add new attribute Anonymous_Master along with
+       occurrences in nodes. Remove attribute Has_Anonymous_Master along
+       with occurrences in nodes.
+       (Anonymous_Master): New routine along with pragma Inline.
+       (Has_Anonymous_Master): Removed along with pragma Inline.
+       (Set_Anonymous_Master): New routine along with pragma Inline.
+       (Set_Has_Anonymous_Master): Removed along with pragma Inline.
+       * exp_ch4.adb (Create_Anonymous_Master): New routine.
+       (Current_Anonymous_Master): Reimplemented.
+
+2015-05-22  Bob Duff  <duff@adacore.com>
+
+       * freeze.adb (Freeze_Profile): Suppress warning if imported
+       subprogram is not at library level.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch8.adb (Analyze_Object_Renaming): Check for renaming
+       component of an object to which Volatile_Full_Access applies.
+
+2015-05-22  Jerome Guitton  <guitton@adacore.com>
+
+       * exp_dbug.ads: Add note about non bit-packed arrays.
+
+2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_prag.adb: Fix typo.
+       * einfo.ads: Grammar fixes in comments.
+
+2015-05-22  Bob Duff  <duff@adacore.com>
+
+       * a-cborma.ads, a-cidlli.ads, a-cimutr.ads, a-ciormu.ads,
+       * a-cihase.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,
+       * a-cborse.ads, a-comutr.ads, a-ciorma.ads, a-cobove.ads,
+       * a-coormu.ads, a-convec.ads, a-cohase.ads, a-coinho.ads,
+       * a-cbdlli.ads, a-cbmutr.ads, a-cbhase.ads, a-cdlili.ads,
+       * a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
+       * a-coinho-shared.ads (Constant_Reference_Type, Reference_Type):
+       Add an initialization expression "raise Program_Error". See,
+       for example, RM-A.18.2(148.4).
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * debug.adb: Update documentation.
+       * einfo.ads, einfo.adb (Needs_Typedef): New flag
+       * exp_unst.adb (Unnest_Subprogram): Mark AREC types as needing
+       typedef's in C.
+       * frontend.adb: Update comments.
+       * gnat1drv.adb (Adjust_Global_Switches): Set all needed flags
+       for -gnatd.V
+       * opt.ads (Generate_C_Code): New switch.
+       * osint-c.adb (Write_C_File_Info): Removed, not used
+       (Write_H_File_Info): Removed, not used
+       * osint-c.ads (Write_C_File_Info): Removed, not used
+       (Write_H_File_Info): Removed, not used
+       * osint.ads (Write_Info): Minor comment updates.
+       (Output_FD): Moved from private part to public part of spec.
+       * sem.adb (Semantics): Force expansion on if in Generate_C_Code
+       mode.
+       * atree.ads: minor typo in comment.
+       * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile):
+       Do not allow VFA on composite object with aliased component.
+
+2015-05-22  Arnaud Charlet  <charlet@adacore.com>
+
+       * osint-c.adb, osint-c.ads (Set_File_Name): Move back to spec.
+
+2015-05-22  Pascal Obry  <obry@adacore.com>
+
+       * prj-util.adb: Minor comment editing.
+
+2015-05-22  Pascal Obry  <obry@adacore.com>
+
+       * makeutl.ads (In_Place_Option): New constant.
+       * prj.ads (Obj_Root_Dir): New variable (absolute path to relocate
+       objects).
+       (Root_Src_Tree): New variable (absolute path of root source tree).
+       * prj-conf.adb (Do_Autoconf): Take into account the object root
+       directory (if defined) to generate configuration project.
+       * prj-nmsc.adb (Get_Directories): Handle case where Obj_Root_Dir
+       is defined.
+       (Locate_Directory): Likewise.
+
+2015-05-22  Pascal Obry  <obry@adacore.com>
+
+       * prj-util.ads, prj-util.adb (Relative_Path): New routine.
+
+2015-05-22  Bob Duff  <duff@adacore.com>
+
+       * exp_utils.ads, exp_utils.adb (Find_Optional_Prim_Op): New
+       interface to return Empty when not found, so we can avoid handling
+       Program_Error in that case.
+       (Find_Prim_Op): Fix latent bug: raise Program_Error when there are no
+       primitives.
+       * exp_ch7.adb, sem_util.adb: Use Find_Optional_Prim_Op when the
+       code is expecting Empty.
+       * sem_ch8.adb: Use Find_Optional_Prim_Op to avoid handling
+       Program_Error.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch3.adb, sem_intr.adb, exp_ch4.adb, s-rannum.adb,
+       sem_eval.adb, s-fatgen.adb, s-expmod.ads: Remove incorrect hyphen in
+       non-binary.
+       * exp_util.adb: Add comment.
+       * osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move from spec to
+       body.
+       (Set_File_Name): New name for the above.
+       (Create_C_File, Create_H_File, Write_C_File_Info, Write_H_File_Info,
+       Close_C_File, Close_H_File): New procedure.
+       * osint.adb: Minor reformatting.
+       * osint.ads: Minor comment updates.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * exp_ch4.adb: Minor rewording.
+       * exp_util.ads: Clarify that Find_Prim_Op is only for
+       tagged types.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * atree.adb, atree.ads, treepr.adb: Change name Needs_Actuals_Check to
+       Check_Actuals.
+       * exp_ch4.adb (Expand_N_Op_Expon): Optimize 2**x in modular
+       and overflow cases.
+
+2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_pakd.adb (Install_PAT): Propagate representation aspects
+       from the original array type to the PAT.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * treepr.adb (Print_Node_Header): Add output of Needs_Actuals_Check.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * atree.adb, atree.ads (Needs_Actuals_Check): New flag.
+
+2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_prag.adb (Analyze_Pragma): Remove the detection
+       of a useless Part_Of indicator when the related item is a constant.
+       (Check_Matching_Constituent): Do not emit an error on a constant.
+       (Check_Missing_Part_Of): Do not check for a missing Part_Of indicator
+       when the related item is a constant.
+       (Collect_Body_States): Code cleanup.
+       (Collect_Visible_States): Code cleanup.
+       (Report_Unused_States): Do not emit an error on a constant.
+       * sem_util.ads, sem_util.adb (Has_Variable_Input): Removed.
+
+2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch8.adb (Analyze_Object_Renaming): Copy
+       Has_Volatile_Full_Access from renamed to renaming entities.
+       * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile):
+       Tidy up and remove redundant setting of Has_Volatile_Full_Access.
+
+2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * ghost.adb (Check_Ghost_Completion): Update references to SPARK
+       RM 6.9 rules.
+       (Check_Ghost_Policy): Update references to SPARK RM 6.9 rules.
+       * sem_ch3.adb (Analyze_Object_Declaration): Update references
+       to SPARK RM 6.9 rules.
+       (Check_Completion): Ghost entities do not require a special form of
+       completion.
+       * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Update references
+       to SPARK RM 6.9 rules.
+       (Analyze_Subprogram_Body_Helper): Update references to SPARK RM 6.9
+       rules.
+       * sem_ch7.adb (Analyze_Package_Body_Helper): Update references
+       to SPARK RM 6.9 rules.
+       (Requires_Completion_In_Body): Ghost entities do not require a special
+       form of completion.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * a-csquin.ads: Use Ada 2012 notation.
+       * sem_ch8.adb: Minor reformatting.
+
+2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Import
+       acts as a completion.
+
+2015-05-22  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch13.adb: Minor reformatting.
+
+2015-05-22  Jose Ruiz  <ruiz@adacore.com>
+
+       * a-reatim.adb: Minor change, fix typo.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * sem_util.ads: Minor addition of ??? comment.
+       * sem_prag.adb, sem_util.adb: Minor reformatting.
+       * sem_ch13.adb: minor reformatting.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * a-reatim.ads: Add Compile_Time_Error to ensure Duration
+       is 64-bits.
+       * sem_ch13.adb: Improve error message.
+       * exp_ch4.adb: Minor reformatting.
+
+2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_prag.adb (Analyze_Pragma): Constants without variable
+       input do not require indicator Part_Of.
+       (Check_Missing_Part_Of): Constants without variable input do not
+       requrie indicator Part_Of.
+       (Collect_Visible_States): Constants without variable input are
+       not part of the hidden state of a package.
+       * sem_util.ads, sem_util.adb (Has_Variable_Input): New routine.
+
+2015-05-22  Robert Dewar  <dewar@adacore.com>
+
+       * exp_util.adb (Activate_Atomic_Synchronization): Do not set
+       Atomic_Sync_Required for an object renaming declaration.
+       * sem_ch8.adb (Analyze_Object_Renaming): Copy Is_Atomic and
+       Is_Independent to renaming object.
+
+2015-05-22  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch5.adb (Analyze_Iterator_Specification): Diagnose
+       various illegalities in iterators over arrays and containers:
+       a) New function Get_Cursor_Type, to verify that the cursor is
+       not a limited type at the point of iteration.
+       b) If the container is a constant, an element_iterator is illegal
+       if the container type does not have a Constant_Indexing aspect.
+       c) If the iterate function has an in-out controlling parameter,
+       the container cannot be a constant object.
+       d) Reject additional cases of iterators over a
+       discriminant-dependent component of a mutable object.
+
+2015-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * einfo.adb (Contract): This attribute now applies to constants.
+       (Set_Contract): This attribute now applies to constants.
+       (Write_Field34_Name): Add output for constants.
+       * einfo.ads Attribute Contract now applies to constants.
+       * sem_ch3.adb (Analyze_Object_Contract): Constants now have
+       their Part_Of indicator verified.
+       * sem_prag.adb (Analyze_Constituent): A constant is now a valid
+       constituent.
+       (Analyze_Global_Item): A constant cannot act as an output.
+       (Analyze_Initialization_Item): Constants are now a valid
+       initialization item.
+       (Analyze_Initializes_In_Decl_Part): Rename
+       global variable States_And_Vars to States_And_Objs and update
+       all its occurrences.
+       (Analyze_Input_Item): Constants are now a
+       valid initialization item. Remove SPARM RM references from error
+       messages.
+       (Analyze_Pragma): Indicator Part_Of can now apply to a constant.
+       (Collect_Body_States): Collect both source constants
+       and variables.
+       (Collect_States_And_Objects): Collect both source constants and
+       variables.
+       (Collect_States_And_Variables): Rename
+       to Collect_States_And_Objects and update all its occurrences.
+       (Collect_Visible_States): Do not collect constants and variables
+       used to map generic formals to actuals.
+       (Find_Role): The role of a constant is that of an input. Separate the
+       role of a variable from that of a constant.
+       (Report_Unused_Constituents): Add specialized wording for constants.
+       (Report_Unused_States): Add specialized wording for constants.
+       * sem_util.adb (Add_Contract_Item): Add processing for constants.
+       * sem_util.ads (Add_Contract_Item): Update the comment on usage.
+       (Find_Placement_In_State_Space): Update the comment on usage.
+
+2015-05-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch5.adb: minor reformatting.
+
+2015-05-21  Robert Dewar  <dewar@adacore.com>
+
+       * freeze.adb (Freeze_Entity): Properly tag -gnatw.z messages.
+
+2015-05-21  Robert Dewar  <dewar@adacore.com>
+
+       * freeze.adb: Minor reformatting.
+       * cstand.adb (Print_Standard): Fix bad printing of Duration
+       low bound.
+       * a-reatim.adb (Time_Of): Complete rewrite to properly detect
+       out of range args.
+
+2015-05-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch5.adb: add (useless) initial value.
+       * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram):
+       Check whether the procedure has parameters before processing
+       formals in ASIS mode.
+
+2015-05-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch13.adb (Check_Iterator_Functions): Emit error on Iterator
+       aspect as well when indexing function is illegal.
+       (Valid_Default_Iterator): Handle properly somme illegal cases
+       to prevent compilation abandoned messages.
+       (Check_Primitive_Function): Verify that type and indexing function
+       are in the same scope.
+       * freeze.adb (Freeze_Record): Extend patch on the presence of
+       indexing aspects to aspect Default_Iterator.
+
+2015-05-19  David Malcolm  <dmalcolm@redhat.com>
+
+       * gcc-interface/trans.c (Sloc_to_locus1): Strenghthen local "map"
+       from line_map * to line_map_ordinary *.
+
+2015-05-12  Jason Merrill  <jason@redhat.com>
+
+       * sigtramp-vxworks.c: Add space between string literal and macro
+       name.
+
+2015-05-12  Arnaud Charlet  <charlet@adacore.com>
+
+       * gnat_rm.texi, gnat_ugn.texi, doc: Documentation updates and clean ups
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch5.adb (Analyze_Iterator_Specifications): Additional
+       legality checks for array and container iterators:
+       a) The domain of iteration cannot be a component that depends
+       on discriminants of a mutable object. The check was recently
+       added for element iterators.
+       b) The cursor type cannot be a limited type at the point of the
+       iteration, because the cursor will be assigned to in the body
+       of the loop.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * freeze.adb (Freeze_Record_Type): Make sure that if we have
+       aspect Iterator_Element, then we have either Constant_Indexing
+       or Variable_Indexing.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * a-coormu.ads, a-coormu.adb: Add Indexing aspect, Reference_Type,
+       and Reference_Control_Type to support element iterators over
+       ordered multisets.
+       * a-ciormu.ads, a-ciormu.adb: Ditto for
+       indefinite_ordered_multisets.
+
+2015-05-12  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch4.adb (Expand_N_Expression_With_Actions): Force
+       the evaluation of the EWA expression.  Code cleanup.
+       (Process_Transient_Object): Code cleanup.
+       * exp_util.adb (Is_Aliased): Controlled transient objects found
+       within EWA nodes are not aliased.
+       (Is_Finalizable_Transient): Iterators are not finalizable transients.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile):
+       Don't allow Atomic and Volatile_Full_Access for the same entity.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch5.adb (Analyze_Iterator_Specification): Implement new
+       semantics and safety checks specified in AI12-0151.
+
+2015-05-12  Pierre-Marie de Rodat  <derodat@adacore.com>
+
+       * sem_ch10.adb (Sem_Ch10.Analyze_Proper_Body): Generate SCOs
+       for subunit in generic units.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * sem_elab.adb (Check_A_Call): Avoid checking internal call
+       from Valid_Scalars
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb (Process_Formals): An untagged incomplete type
+       is legal in the profile of a null procedure.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly
+       the checks on a derived formal whose parent type is a previous
+       formal that is not a derived type.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * aspects.ads, aspects.adb: Add entries for aspect Volatile_Full_Access
+       * einfo.adb (Has_Volatile_Full_Access): New flag.
+       (Has_Volatile_Full_Access): New flag.
+       * einfo.ads (Has_Volatile_Full_Access): New flag.
+       * par-prag.adb: Add dummy entry for Volatile_Full_Access.
+       * sem_prag.adb (Analyze_Pragma, case Volatile_Full_Access):
+       Implement new pragma.
+       * snames.ads-tmpl: Add entries for pragma Volatile_Full_Access.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * targparm.ads: Minor reformatting.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * a-reatim.adb (Time_Of): Properly detect overflow when TS = 0.0.
+       * a-reatim.ads: Minor reformatting.
+
+2015-05-12  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * einfo.ads: Update the documentation of flags
+       Has_Inherited_Default_Init_Cond and Has_Default_Init_Cond.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * impunit.adb: Add entry for a-dhfina.ads
+       * a-dhfina.ads: New file.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): if the array
+       type has convention Fortran, a multidimensional iterator varies
+       the first dimension fastest.
+
+2015-05-12  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * einfo.adb: Node32 is now used as Encapsulating_State.
+       Node37 is now used as Associated_Entity.
+       (Associated_Entity): New routine.
+       (Encapsulating_State): Update the assertion guard to include constants.
+       (Set_Associated_Entity): New routine.
+       (Set_Encapsulating_State): Update the assertion guard to
+       include constants.
+       (Write_Field10_Name): Remove the output for Encapsulating_State.
+       (Write_Field32_Name): Add output for Encapsulating_State.
+       (Write_Field37_Name): Add output for Associated_Entity.
+       * einfo.ads New attribute Associated_Entity along with placement
+       in entities. Attribute Encapsulating_State now uses Node32.
+       (Associated_Entity): New routine along with pragma Inline.
+       (Set_Associated_Entity): New routine along with pragma Inline.
+       * inline.ads Code reformatting.
+       * sem_attr.adb (Analyze_Attribute): Correct the prefix of
+       attribute 'Result when the context is a generic instantiation.
+       (Analyze_Attribute_Old_Result): Pragmas Depends and
+       Refined_Depends are a valid context for attribute 'Result.
+       (Denote_Same_Function): Allow attribute 'Result to denote
+       generic functions.
+       * sem_ch3.adb Add with and use clauses for Sem_Ch12.
+       (Analyze_Declarations): Capture global references within the
+       contracts of packages, subprograms and their respective bodies.
+       * sem_ch6.adb (Analyze_Aspects_On_Body_Or_Stub): Removed.
+       (Analyze_Completion_Contract): Removed.
+       (Analyze_Generic_Subprogram_Body): Enchange the aspects after
+       creating the generic copy. Create a generic contract for the
+       template. Analyze the aspects of the generic body. Analyze the
+       contract of the generic body when it is a compilation unit and
+       capture global references.
+       (Analyze_Subprogram_Body_Contract): Code cleanup.
+       (Analyze_Subprogram_Contract): Do not save global references here.
+       (Save_Global_References_In_List): Removed.
+       * sem_ch7.adb (Analyze_Package_Body_Contract): Code cleanup.
+       (Analyze_Package_Body_Helper): Create a generic contract for
+       the template.
+       (Analyze_Package_Contract): Code cleanup.
+       * sem_ch10.adb Add with and use clauses for Sem_Ch12.
+       (Analyze_Compilation_Unit): Capture global references in a
+       generic subprogram declaration that acts as a compilation unit.
+       * sem_ch12.adb Add with and use clauses for Sem_Prag. Illustrate
+       the implementation of generic contracts. Alphabetize various
+       subprograms.
+       (Analyze_Generic_Package_Declaration):
+       Create a generic contract for the template.
+       (Analyze_Generic_Subprogram_Declaration): Create a generic
+       contract for the template.
+       (Analyze_Subprogram_Instantiation): Instantiate the contract of the
+       subprogram.
+       (Copy_Generic_Node): Link defining entities of the generic template
+       with the corresponding defining entities of the generic copy. Update
+       the processing of pragmas.
+       (Instantiate_Contract): Removed.
+       (Instantiate_Subprogram_Contract): New routine.
+       (Requires_Delayed_Save): New routine.
+       (Save_Global_References): Rename formal parameter N to Templ. Various
+       cleanups.
+       (Save_Global_References_In_Aspects): Moved from the spec.
+       (Save_Global_References_In_Contract): New routine.
+       (Save_References_In_Aggregate): New routine.
+       (Save_References_In_Char_Lit_Or_Op_Symbol): New routine.
+       (Save_References_In_Descendants): New routine.
+       (Save_References_In_Identifier): New routine.
+       (Save_References_In_Operator): New routine.
+       (Save_References_In_Pragma): New routine.
+       * sem_ch12.ads (Save_Global_References): Rename formal
+       parameter N to Templ. Update the comment on usage.
+       (Save_Global_References_In_Aspects): Moved to the body.
+       (Save_Global_References_In_Contract): New routine.
+       * sem_ch13.adb (Analyze_Aspect_Specifications_On_Body_Or_Stub):
+       New routine.
+       * sem_ch13.ads (Analyze_Aspect_Specifications_On_Body_Or_Stub):
+       New routine.
+       * sem_prag.adb (Add_Item_To_Name_Buffer): Add support for
+       generic parameters.
+       (Analyze_Contract_Cases_In_Decl_Part): Code cleanup.
+       (Analyze_Depends_Global): New routine.
+       (Analyze_Depends_In_Decl_Part): Code cleanup.
+       (Analyze_Global_In_Decl_Part): Code cleanup.
+       (Analyze_Global_Item): Constants are now valid global items. Do
+       not perform state-related checks in an instance. Change the way
+       renamings are handled.  (Analyze_Initial_Condition_In_Decl_Part):
+       Code cleanup.
+       (Analyze_Initializes_In_Decl_Part): Code cleanup.
+       (Analyze_Input_Output): The analysis of attribute 'Result in
+       the context of pragmas Depends or Refined_Depends now reuses
+       the existing attribute analysis machinery. Constants and
+       generic parameters are now valid dependency items. Do not
+       perform state-related checks in an instance. Change the way
+       renamings are handled.  (Analyze_Pragma): Add a "characteristics"
+       section for pragmas Abstract_State, Contract_Cases, Depends,
+       Extensions_Visible, Global, Initial_Condition, Initializes,
+       Post, Post_Class, Postcondition, Pre, Pre_Class, Precondition,
+       Refined_Depends, Refined_Global, Refined_Post, Refined_State, Test_Case.
+       (Analyze_Pre_Post_Condition): Do not create a generic
+       template here.
+       (Analyze_Pre_Post_Condition_In_Decl_Part): Code cleanup.
+       (Analyze_Refined_Depends_Global_Post): New routine.
+       (Analyze_Refined_Depends_In_Decl_Part): Code cleanup.
+       (Analyze_Refined_Global_In_Decl_Part): Code cleanup.
+       (Analyze_Refined_Pragma): Removed.
+       (Analyze_Refined_State_In_Decl_Part): Code cleanup.
+       (Analyze_Test_Case_In_Decl_Part): Code cleanup.
+       (Check_Dependency_Clause): Do not perform this check in an instance.
+       (Check_Function_Return): Add support for generic functions.
+       (Check_In_Out_States): Do not perform this check in an instance.
+       (Check_Input_States): Do not perform this check in an instance.
+       (Check_Mode_Restriction_In_Function): Add support for generic functions.
+       (Check_Output_States): Do not perform this check in an instance.
+       (Check_Postcondition_Use_In_Inlined_Subprogram): Rename
+       parameter Subp_Id to Spec_Id and update comment on usage.
+       (Check_Proof_In_States): Do not perform this check in an instance.
+       (Check_Refined_Global_Item): Add support for constants.
+       (Check_Refined_Global_List): Do not perform this check in an instance.
+       (Collect_Global_Items): Reimplemented.
+       (Collect_Subprogram_Inputs_Outputs): Add support for generic parameters.
+       (Create_Generic_Template): Removed.
+       (Find_Related_Package_Or_Body): Moved to spec.
+       (Find_Role): Add support for generic parameters and constants.
+       (Get_Argument): Moved to spec. Rename parameter Spec_Id to Context_Id.
+       (Match_Item): Add support for constants.
+       (Preanalyze_Test_Case_Arg): Reimplemented.
+       (Report_Extra_Clauses): Do not perform this check in an instance.
+       (Report_Extra_Constituents): Do not perform this check in an instance.
+       * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update
+       the comment on usage.
+       (Find_Related_Package_Or_Body): Moved from body.
+       (Get_Argument): Moved from body.
+       * sem_util.adb Add with and use clauses for Sem_Ch12.
+       (Corresponding_Spec_Of): Add support for packages and package bodies.
+       (Create_Generic_Contract): New routine.
+       (Is_Contract_Annotation): Reimplemented.
+       (Is_Generic_Declaration_Or_Body): New routine.
+       (Is_Package_Contract_Annotation): New routine.
+       (Is_Subprogram_Contract_Annotation): New routine.
+       * sem_util.ads (Corresponding_Spec_Of): Update the comment on usage.
+       (Create_Generic_Contract): New routine.
+       (Is_Generic_Declaration_Or_Body): New routine.
+       (Is_Package_Contract_Annotation): New routine.
+       (Is_Subprogram_Contract_Annotation): New routine.
+       * sinfo.adb (Is_Generic_Contract_Pragma): New routine.
+       (Set_Is_Generic_Contract_Pragma): New routine.
+       * sinfo.ads Add new attribute Is_Generic_Contract_Pragma along
+       with occurrences in nodes.
+       (Is_Generic_Contract_Pragma): New routine along with pragma Inline.
+       (Set_Is_Generic_Contract_Pragma): New routine along with pragma Inline.
+       * treepr.adb (Print_Entity_Info): Output fields 36 to 41.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * a-taster.ads: Minor comment fix: fix bad header, this is a
+       pure RM unit.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * sem_intr.adb: (Check_Shift): Diagnose bad modulus value.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * gnat1drv.adb (Adjust_Global_Switches): Default to suppressing
+       Alignment_Checks on non-strict alignment machine.
+       * sem_ch13.adb (Validate_Address_Clauses): Don't give
+       compile-time alignment warnings if run time Alignment_Check
+       is suppressed.
+
+2015-05-12  Thomas Quinot  <quinot@adacore.com>
+
+       * g-sercom.ads, g-sercom-linux.adb (GNAT.Serial_Communications.
+       Data_Rate): New literals B75, B110, B150, B300, B600.
+
+2015-05-12  Doug Rupp  <rupp@adacore.com>
+
+       * init.c (__gnat_init_float) [vxworks]: For e500v2,
+       do nothing and leave the responsibility to install the handler
+       and enable the exceptions to the BSP.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch9.adb, einfo.ads, exp_intr.adb: Minor reformatting.
+       * sem_disp.adb: Minor code reorganization (remove junk redundant
+       null statement).
+       * exp_unst.adb (Unnest_Subprogram.Uplev_Refs): Ignore uplevel
+       references to bounds of types coming from original type reference.
+       * checks.ads: Minor reformatting.
+       * checks.adb: Minor reformatting.
+       * sem_prag.adb (Analyze_Pragma, case Check): If in ignored
+       assertion, then make sure we do not drag in bignum stuff.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch9.adb (Collect_Interfaces): Initialize
+       Direct_Primitive_Operations for a tagged synchronized type,
+       so it can used in ASIS mode.
+       * sem_disp.adb (Check_Dispatching_Operation): If expansion is
+       disabled, attach subprogram to list of Direct_Primitive_Operations
+       of synchronized type itself, for ASIS use, because in this case
+       Corresponding_Record_Type is not built.
+       * einfo.ads: Indicate use of Direct_Primitive_Operations on
+       synchronized type.
+
+2015-05-12  Pierre-Marie de Rodat  <derodat@adacore.com>
+
+       * exp_pakd.adb: Make clearer the comment in exp_pakd.adb about
+       ___XP suffixes.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch3.adb, sem_util.adb, sem_ch6.adb: Minor reformatting.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * exp_unst.adb (Visit_Node): Deal with subprogram and package stubs.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_intr.adb (Expand_Dispatching_Constructor_Call): The
+       tag to be retrieved for the generated call is the first entry
+       in the dispatch table for the return type of the instantiated
+       constructor.
+
+2015-05-12  Bob Duff  <duff@adacore.com>
+
+       * exp_ch7.adb, exp_ch7.ads, exp_intr.adb, exp_util.adb,
+       exp_util.ads: Update comments.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Add_Internal_Interface_Entities): Do no generate
+       freeze nodes for these in ASIS mode, because they lead to
+       elaoration order issues in gigi.
+
+2015-05-12  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_ch6.adb (Analyze_Expression_Function): Code
+       cleanup. Use Copy_Subprogram_Spec to create a proper spec.
+       (Analyze_Subprogram_Body_Helper): Code cleanup. Do not
+       prepare a stand alone body for inlining in GNATprove mode
+       when inside a generic.  (Body_Has_Contract): Reimplemented.
+       (Build_Subprogram_Declaration): New routine.
+       * sem_ch10.adb (Analyze_Compilation_Unit): Capture global
+       references within generic bodies by loading them.
+       * sem_util.adb (Copy_Parameter_List): Code cleanup.
+       (Copy_Subprogram_Spec): New routine.
+       (Is_Contract_Annotation): New routine.
+       * sem_util.ads (Copy_Subprogram_Spec): New routine.
+       (Is_Contract_Annotation): New routine.
+
+2015-05-12  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_attr.adb (Resolve_Attribute): Do not analyze the generated
+       body of an expression function when the prefix of attribute
+       'Access is the body.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Build_Derived_Enumeration_Type): The anonymous base
+       created for a derived enumeration type is not a first subtype,
+       even though it is defined through a full type declaration.
+       * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Do not process
+       aspects for the anonymous base type constructed for a derived
+       scalar type, because they will be set when the first subtype
+       is frozen.
+       (Inherit_Aspects_At_Freeze_Point): Fix typos on handling of
+       Default_Value and Default_Component_Value, that prevented the
+       proper inheritance of these aspects.
+
+2015-05-12  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch6.adb, exp_unst.adb: Minor typo fixes.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch3.adb: Minor reformatting.
+
+2015-05-12  Vincent Celier  <celier@adacore.com>
+
+       * gnatcmd.adb: If we want to invoke gnatmake (gnatclean) with
+       -P, then check if gprbuild (gprclean) is available; if it is,
+       use gprbuild (gprclean) instead of gnatmake (gnatclean).
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * debug.adb: Add flag -gnatd.3 to output diagnostic info from
+       Exp_Unst.
+       * einfo.ad, einfo.adb: Reorganize (and remove most of) flags used by
+       Exp_Unst.
+       * exp_ch6.adb (Unest_Bodies): Table for delayed calls to
+       Unnest_Subprogram (Expand_N_Subprogram_Body): Add entry to table
+       for later call instead of calling Unnest_Subprogram directly
+       (Initialize): New procedure (Unnest_Subprograms): New procedure
+       * exp_ch6.ads (Add_Extra_Actual_To_Call): Move into proper
+       alpha order.
+       (Initialize): New procedure.
+       (Unnest_Subprograms): New procedure.
+       * exp_unst.adb (Unnest_Subprogram): Major rewrite, moving
+       all processing to this routine which is now called late
+       after instantiating bodies. Fully handles the case of generic
+       instantiations now.
+       * exp_unst.ads: Major rewrite, moving all processing to
+       Unnest_Subprogram.
+       * frontend.adb (Frontend): Add call to Exp_Ch6.Initialize.
+       (Frontend): Add call to Unnest_Subprograms.
+       * sem_ch8.adb (Find_Direct_Name): Back to old calling sequence
+       for Check_Nested_Access.
+       * sem_util.adb (Build_Default_Subtype): Minor reformatting
+       (Check_Nested_Access): Back to original VM-only form (we
+       now do all the processing for Unnest_Subprogram at the time
+       it is called.
+       (Denotes_Same_Object): Minor reformatting
+       (Note_Possible_Modification): Old calling sequence for
+       Check_Nested_Access.
+       * sem_util.ads (Check_Nested_Access): Back to original VM-only
+       form (we now do all the processing for Unnest_Subprogram at the
+       time it is called.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch3.adb, freeze.adb, sem_ch6.adb: Minor reformatting.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Analyze_Object_Declaration): New function
+       Has_Delayed_Aspect, used to defer resolution of an aggregate
+       expression when the object declaration carries aspects Address
+       and/or Alignment.
+       * freeze.adb (Freeze_Object_Declaration): New subsidiary procedure
+       to Freeze_Entity.  In addition to the previous processing steps
+       at the freeze point of an object, this procedure also handles
+       aggregates in object declarations, when the declaration carries
+       delayed aspects that require that the initialization of the
+       object be attached to its freeze actions.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb (Analyze_Subprogram_Declaration): Following
+       AI12-0147, null procedures and expression functions are allowed
+       in protected bodies.
+
+2015-05-12  Tristan Gingold  <gingold@adacore.com>
+
+       * i-cpoint.adb (Copy_Terminated_Array): Copy nothing if Length is 0.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Complete_Private_Subtype): Propagate
+       Has_Delayed_Aspects flag from private to full view, to ensure
+       that predicate functions are constructed.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb (Process_Formals): If a tagged formal is an
+       incomplete class-wide type, the subprogram must have a delayed
+       freeze even though the opertation is not a primitive of the
+       type. THis ensures that the backend can recover the full view
+       when elaborating the subprogram declaration.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_util.adb (Get_Current_Value_Condition): Nothing to be
+       done if an elsif part has been rewritten so that it is not part
+       of an enclosing if_statement.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * sem_type.adb, sem_ch10.adb, freeze.adb, sem_ch6.adb, exp_disp.adb:
+       Minor reformatting.
+
+2015-05-12  Bob Duff  <duff@adacore.com>
+
+       * exp_attr.adb (Size): Remove unnecessary check for types with
+       unknown discriminants.  That was causing the compiler to build
+       a function call _size(T), where T is a type, not an object.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch4.adb (Extended_Primitive_Ops): Exclude overriding
+       primitive operations of a type extension declared in the package
+       body, to prevent duplicates in extended list.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Analyze_Component_Declaration): If the component is
+       an unconstrained synchronized type with discriminants, create a
+       constrained default subtype for it, so that the enclosing record
+       can be given the proper size.
+       * sem_util.adb (Build_Default_Subtype): If the subtype is created
+       for a record discriminant, do not analyze the declarztion at
+       once because it is added to the freezing actions of the enclosing
+       record type.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * exp_prag.adb (Expand_N_Pragma): Rewrite ignored pragma as
+       Null statements.
+       * namet.ads (Boolean3): Document this flag used for Ignore_Pragma.
+       * par-prag.adb (Prag): Implement Ignore_Pragma.
+       * sem_prag.adb: Implement Ignore_Pragma.
+       * snames.ads-tmpl: Add entries for pragma Ignore_Pragma.
+
+2015-05-12  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch10.adb (Build_Shadow_Entity): Link the class-wide shadow
+       entity with its corresponding real entity.
+       (Decorate_Type): Unconditionally build the class-wide shadow entity of
+       tagged types.
+       * einfo.ads, einfo.adb (Has_Non_Limited_View): New synthesized
+       attribute.
+       (Non_Limited_View): Moved from field 17 to field 19 be available
+       in class-wide entities.
+       * exp_attr.adb (Access_Cases): Code cleanup.
+       * exp_disp.adb (Expand_Interface_Actuals): Ditto.
+       * exp_util.adb (Non_Limited_Designated_Type): Ditto.
+       * freeze.adb (Build_Renamed_Bdody): Ditto.
+       * sem_aux.adb (Available_View): Ditto.
+       * sem_ch4.adb (Analyze_Selected_Component): Ditto.
+       (Try_One_Prefix_Interpretation): Ditto.
+       * sem_ch5.adb (Analyze_Assignment): Ditto.
+       * sem_ch6.adb (Detect_And_Exchange): Ditto.
+       * sem_ch8.adb (Find_Expanded_Name): Ditto.
+       * sem_disp.adb (Check_Controlling_Type): Ditto.
+       * sem_res.adb (Resolve_Type_Conversion): Ditto.
+       (Full_Designated_Type): Ditto.
+       * sem_type.adb (Covers): Ditto.
+       * sem_util.adb: Fix typo in comment.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * exp_unst.adb (Get_Real_Subp): New subprogram.
+       (Unnest_Subprogram): Use Get_Real_Subp.
+       (Uplev_Refs_For_One_Subp): Skip if no ARECnU entity.
+       (Uplev_Refs_For_One_Subp): Use actual subtype in unconstrained case.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * a-reatim.adb ("/"): Add explicit check for Time_Span_First / -1.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch4.adb (Extended_Primitive_Ops): New subprogram,
+       auxiliary to Try_Primitive_Operation to handle properly prefixed
+       calls where the operation is not a primitive of the type, but
+       is declared in the package body that is in the immediate scope
+       of the type.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * sem_util.adb (Is_Variable): Allow X'Deref(Y) as a variable.
+
+2015-05-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch8.adb (Find_Expanded_Name): Handle properly a fully
+       qualified name for an instance of a generic grand-child unit in
+       the body its parent.
+
+2015-05-12  Robert Dewar  <dewar@adacore.com>
+
+       * exp_unst.adb (Upref_Name): New subprogram.
+       (Unnest_Subprogram): Use Upref_Name.
+       (Unnest_Subprogram): Use new Deref attribute.
+       * exp_unst.ads: Doc updates.
+
+2015-05-12  Thomas Quinot  <quinot@adacore.com>
+
+       * adaint.c: Enable Large File Support in adaint so that __gnat_readdir
+       can access files on filesystems mounted from servers that use large
+       NFS file handles.
+
+2015-05-09  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils.c (gnat_write_global_declarations): Use type_decl
+       method instead of global_decl for TYPE_DECLs.
+
+2015-04-27  Jim Wilson  <jim.wilson@linaro.org>
+
+       * gcc-interface/Makefile-lan.in (ada.mostlyclean): Remove gnatbind
+       and gnat1.
+
+2015-04-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gnatvsn.ads (Library_Version): Bump to 6.
+
+2015-04-09  Iain Sandoe  <iain@codesourcery.com>
+
+       * gcc-interface/Makefile.in (darwin, powerpc): Enable atomics.
+
+2015-04-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not make
+       a function returning an unconstrained type 'const' for the middle-end.
+
+       * gcc-interface/trans.c (Pragma_to_gnu) <case Pragma_Warning>: Use
+       exact condition to detect Reason => "..." pattern.
+
+2015-03-31  Tom de Vries  <tom@codesourcery.com>
+
+       PR ada/65490
+       * terminals.c (child_setup_tty): Fix warning 'argument to sizeof in
+       bzero call is the same expression as the destination'.
+
+2015-03-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Deref>: New case.
+
+2015-03-24  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch3.adb: Minor typo fix (missing paren).
+
+2015-03-24  Robert Dewar  <dewar@adacore.com>
+
+       * sinfo.ads: Update comment.
+
+2015-03-24  Robert Dewar  <dewar@adacore.com>
+
+       * exp_attr.adb: Add entry for typ'Deref.
+       * sem_attr.adb (Deref): New GNAT attribute.
+       * sem_attr.ads: Add entry for new GNAT attribute Deref.
+       * snames.ads-tmpl: Add entries for new attribute Deref.
+
+2015-03-24  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch13.adb (Rep_Item_Too_Early): allow pragma Convention
+       on generic type.
+
+2015-03-24  Gary Dismukes  <dismukes@adacore.com>
+
+       * inline.adb: Minor typo fix.
+
+2015-03-24  Arnaud Charlet  <charlet@adacore.com>
+
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst,
+       doc/gnat_ugn/gnat_utility_programs.rst
+       doc/gnat_rm/implementation_defined_attributes.rst
+       doc/gnat_rm/implementation_defined_pragmas.rst
+       doc/gnat_rm/representation_clauses_and_pragmas.rst
+       doc/gnat_rm/about_this_guide.rst
+       doc/gnat_rm/implementation_of_ada_2012_features.rst: Doc improvements.
+       * gnat_rm.texi, gnat_ugn.texi: Regenerate.
+
+2015-03-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/65522
+       * adadecode.c (ada_demangle): Guard with IN_RTS instead of IN_GCC.
+
+2015-03-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR ada/65451
+       * gcc-interface/utils.c (gnat_pushdecl): Tidy up and improve comment.
+       Make sure to chain only main variants through TYPE_NEXT_PTR_TO.
+
+       * gcc-interface/trans.c (Attribute_to_gnu): Revert latest change.
+
+2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils2.c (gnat_invariant_expr): Return null if the type
+       of the expression ends up being composite.
+
+2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (is_from_limited_with_of_main): New predicate.
+       (gnat_to_gnu_entity) <E_Subprogram_Type>: Invoke it on return and
+       parameter types to detect circularities in ASIS mode.
+       * gcc-interface/trans.c (Attribute_to_gnu): Mention AI05-0151.
+
+2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Abstract_State>: Do not
+       short-circuit the regular handling.
+
+2015-03-13  Robert Dewar  <dewar@adacore.com>
+
+       * exp_unst.adb (Note_Uplevel_Reference): Eliminate duplicate
+       references.
+       (Actual_Ref): New function.
+       (AREC_String): Minor reformatting.
+       (Unnest_Subprogram): Use Actual_Ref.
+       * frontend.adb (Frontend): Turn off Unnest_Subprogram_Mode
+       before call to Instantiate_Bodies.
+
+2015-03-13  Ed Schonberg  <schonberg@adacore.com>
+
+       * freeze.adb (Freeze_Profile): If the return type of a function
+       being frozen is an untagged limited view and the function is
+       abstract, mark the type as frozen because there is no later
+       point at which the profile of the subprogram will be elaborated.
+
+2015-03-13  Robert Dewar  <dewar@adacore.com>
+
+       * einfo.adb, einfo.ads, atree.adb, atree.ads, atree.h: Add seventh
+       component to entities. Add new fields Field36-41 and Node36-41.
+
+2015-03-13  Claire Dross  <dross@adacore.com>
+
+       * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Rewrite after review.
+
+2015-03-13  Robert Dewar  <dewar@adacore.com>
+
+       * exp_util.adb (Is_Volatile_Reference): Compile time known
+       value is never considered to be a volatile reference.
+
+2015-03-13  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch3.adb (Analyze_Object_Contract): Suppress "constant
+       cannot be volatile" for internally generated object (such as
+       FIRST and LAST constants).
+
+2015-03-13  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch12.adb (Validate_Access_Subprogram_Instance): If a
+       convention is specified for the formal parameter, verify that
+       the actual has the same convention.
+       * sem_prag.adb (Set_Convention_From_Pragma): Allow convention
+       pragma to be set on a generic formal type.
+       * sem_util.adb (Set_Convention): Ignore within an instance,
+       as it has already been verified in the generic unit.
+
+2015-03-13  Claire Dross  <dross@adacore.com>
+
+       * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not inline
+       subprograms with unconstrained record parameters containing
+       Itype declarations.
+       * sinfo.ads Document GNATprove assumption that type should match
+       in the AST.
+       * sem_ch6.adb (Analyze_Subprogram_Body_Contract):
+       Do not check for Refined_Depends and Refined_Globals contracts
+       as they are optional.
+
+2015-03-13  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch12.adb (Instantiate_Type): For a floating-point type,
+       capture dimension info if any, because the generated subtype
+       declaration does not come from source and will not process dimensions.
+       * sem_dim,adb (Analyze_Dimension_Extension_Or_Record_Aggregate):
+       Do not analyze expressions with an initialization procedure
+       because aggregates will have been checked at the point of record
+       declaration.
+
+2015-03-13  Robert Dewar  <dewar@adacore.com>
+
+       * aspects.ads, aspects.adb: Add entries for aspect Unimplemented.
+       * einfo.ads, einfo.adb (Is_Unimplemented): New flag.
+       * sem_ch13.adb: Add dummy entry for aspect Unimplemented.
+       * snames.ads-tmpl: Add entry for Name_Unimplemented.
+
+2015-03-13  Gary Dismukes  <dismukes@adacore.com>
+
+       * style.adb (Missing_Overriding): Apply the
+       Comes_From_Source test to the Original_Node of the subprogram
+       node, to handle the case of a null procedure declaration that
+       has been rewritten as an empty procedure body.
+
+2015-03-13  Robert Dewar  <dewar@adacore.com>
+
+       * exp_util.ads: Minor fix to comment.
+       * sem_ch3.adb (Constrain_Index): Correct pasto from previous
+       change.
+
+2015-03-13  Robert Dewar  <dewar@adacore.com>
+
+       * exp_util.ads, exp_util.adb (Force_Evaluation): Add Related_Id and
+       Is_Low/High_Bound params.
+       * sem_ch3.adb (Constrain_Index): Use new Force_Evaluation calling
+       sequence to simplify generation of FIRST/LAST temps for bounds.
+
+2015-03-12  Olivier Hainque  <hainque@adacore.com>
+
+       * gcc-interface/trans.c (Attribute_to_gnu) <Code_Address case>:
+       On targets where a function symbol designates a function descriptor,
+       fetch the function code address from the descriptor.
+       (USE_RUNTIME_DESCRIPTORS): Provide a default definition.
+
+2015-03-04  Robert Dewar  <dewar@adacore.com>
+
+       * sem_warn.adb: Minor reformatting.
+       * init.c: Minor tweaks.
+
+2015-03-04  Dmitriy Anisimko  <anisimko@adacore.com>
+
+       * a-coinho-shared.adb: Fix clear of already empty holder.
+
+2015-03-04  Robert Dewar  <dewar@adacore.com>
+
+       * exp_unst.adb (Check_Dynamic_Type): Ignore library level types.
+       (Check_Uplevel_Reference_To_Type): Ignore call inside generic.
+       (Note_Uplevel_Reference): Ignore call inside generic.
+       (Note_Uplevel_Reference): Fix check for no entity field.
+       (Unnest_Subprogram): Ignore call inside generic.
+       (Find_Current_Subprogram): Use Defining_Entity, not Defining_Unit_Name.
+       (Visit_Node): Ignore calls to Imported subprograms.
+       (Visit_Node): Fix problem in finding subprogram body in some cases.
+       (Add_Form_To_Spec): Use Defining_Entity, not Defining_Unit_Name.
+
+2015-03-04  Robert Dewar  <dewar@adacore.com>
+
+       * einfo.adb (Is_ARECnF_Entity): Removed.
+       (Last_Formal): Remove special handling of Is_ARECnF_Entity.
+       (Next_Formal): Remove special handling of Is_ARECnF_Entity.
+       (Next_Formal_With_Extras): Remove special handling of Is_ARECnF_Entity.
+       (Number_Entries): Minor reformatting.
+       * einfo.ads (Is_ARECnF_Entity): Removed.
+       * exp_unst.adb (Unnest_Subprogram): Remove setting of
+       Is_ARECnF_Entity.
+       (Add_Extra_Formal): Use normal Extra_Formal circuit.
+       * sprint.adb (Write_Param_Specs): Properly handle case where
+       there are no source formals, but we have at least one Extra_Formal
+       present.
+
+2015-03-04  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_aggr.adb (Resolve_Record_Aggregate,
+       Add_Discriminant_Values): If the value is a reference to the
+       current instance of an enclosing type, use its base type to check
+       against prefix of attribute reference, because the target type
+       may be otherwise constrained.
+
+2015-03-04  Robert Dewar  <dewar@adacore.com>
+
+       * atree.h: Add entries for Flag287-Flag309.
+       * einfo.adb: Add (unused) flags Flag287-Flag309.
+
+2015-03-04  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_util.adb (Collect_Interfaces, Collect): When gathering
+       interfaces of ancestors, handle properly a subtype of a private
+       extension.
+
+2015-03-04  Robert Dewar  <dewar@adacore.com>
+
+       * einfo.adb (Is_ARECnF_Entity): New flag (ARECnF is an extra formal).
+       (Next_Formal): Don't return ARECnF formal.
+       (Last_Formal): Don't consider ARECnF formal.
+       (Next_Formal_With_Extras): Do consider ARECnF formal.
+       * einfo.ads (Is_ARECnF_Entity): New flag (ARECnF is an extra formal).
+       * exp_unst.adb (Create_Entities): Set Is_ARECnF_Entity flag.
+
+2015-03-04  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch6.adb (Expand_Simple_Function_Return): When the returned
+       object is a class-wide interface object and we generate the
+       accessibility described in RM 6.5(8/3) then displace the pointer
+       to the object to reference the base of the object (to get access
+       to the TSD of the object).
+
+2015-03-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_prag.adb (Analyze_Abstract_State): Use routine
+       Malformed_State_Error to issue general errors.
+       (Analyze_Pragma): Diagnose a syntax error related to a state
+       declaration with a simple option.
+       (Malformed_State_Error): New routine.
+
+2015-03-04  Robert Dewar  <dewar@adacore.com>
+
+       * a-strsup.adb (Super_Slice): Deal with super flat case.
+       * einfo.ads: Minor reformatting.
+       * s-imgdec.adb (Set_Decimal_Digits): Add comment about possibly
+       redundant code.
+
+2015-03-04  Claire Dross  <dross@adacore.com>
+
+       * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
+       a-cforse.ads, a-cofove.ads: Use Default_Initial_Condition on formal
+       containers.
+
+2015-03-04  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_warn.adb (Check_References): When checking for an unused
+       in-out parameter of a class- wide type, use its type to determine
+       whether it is private, in order to avoid a spurious warning when
+       subprogram spec and body are in different units.
+
+2015-03-04  Yannick Moy  <moy@adacore.com>
+
+       * sem_attr.adb: Improve warning messages.
+
+2015-03-04  Robert Dewar  <dewar@adacore.com>
+
+       * exp_ch6.adb (Expand_N_Subprogram_Body): Avoid trying to unnest
+       generic subprograms.
+       * exp_unst.adb (Check_Dynamic_Type): Handle record types properly
+       (Note_Uplevel_Reference): Ignore uplevel references to non-types
+       (Get_Level): Consider only subprograms, not blocks.
+       (Visit_Node): Set proper condition for generating ARECnF entity.
+       Ignore indirect calls. Ignore calls to subprograms
+       outside our nest.
+       (Unnest_Subprogram): Minor changes in dealing with ARECnF entity.
+       (Add_Form_To_Spec): Properly set Last_Entity field.
+       (Unnest_Subprogram): Set current subprogram scope for analyze calls.
+       Handle case of no uplevel refs in outer subprogram
+       Don't mark uplevel entities as aliased.
+       Don't deal with calls with no ARECnF requirement.
+
+2015-03-04  Robert Dewar  <dewar@adacore.com>
+
+       * s-valrea.adb (Scan_Real): Remove redundant tests from scaling loops.
+       * s-imgdec.adb (Set_Decimal_Digits): Remove redundant Max
+       operation in computing LZ.
+       * sem_attr.adb: Minor typo fix
+
+2015-03-04  Robert Dewar  <dewar@adacore.com>
+
+       * exp_ch7.adb: Minor reformatting.
+       * exp_unst.adb (Build_Tables): Fix minor glitch for no separate
+       spec case.
+       * erroutc.adb (Delete_Msg): add missing decrement of info msg counter.
+
+2015-03-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch6.adb (Build_Pragma_Check_Equivalent): Suppress
+       references to formal parameters subject to pragma Unreferenced.
+       (Suppress_Reference): New routine.
+       * sem_attr.adb (Analyze_Attribute): Reimplement the analysis
+       of attribute 'Old. Attributes 'Old and 'Result now share
+       common processing.
+       (Analyze_Old_Result_Attribute): New routine.
+       (Check_Placement_In_Check): Removed.
+       (Check_Placement_In_Contract_Cases): Removed.
+       (Check_Placement_In_Test_Case): Removed.
+       (Check_Use_In_Contract_Cases): Removed.
+       (Check_Use_In_Test_Case): Removed.
+       (In_Refined_Post): Removed.
+       (Is_Within): Removed.
+       * sem_warn.adb (Check_Low_Bound_Tested): Code cleanup.
+       (Check_Low_Bound_Tested_For): New routine.
+
+2015-03-04  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch3.adb (Expand_N_Object_Declaration):
+       Generate a runtime check to test the expression of pragma
+       Default_Initial_Condition when the object is default initialized.
+
+2015-03-02  Robert Dewar  <dewar@adacore.com>
+
+       * scng.adb (Scan): Ignore illegal character in relaxed
+       semantics mode.
+
+2015-03-02  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch4.adb (Analyze_Set_Membership); Retain Overloaded flag
+       on left operand, so it can be properly resolved with type of
+       alternatives of right operand.
+       * sem_res.adb (Resolve_Set_Membership): Handle properly an
+       overloaded left-hand side when the alternatives on the right
+       hand side are literals of some universal type.  Use first
+       non-overloaded alternative to find expected type.
+
+2015-03-02  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch7.adb (Make_Set_Finalize_Address_Call): Use underlying
+       type to retrieve designated type, because the purported access
+       type may be a partial (private) view, when it is declared in
+       the private part of a nested package, and finalization actions
+       are generated when completing compilation of enclosing unit.
+
+2015-03-02  Robert Dewar  <dewar@adacore.com>
+
+       * back_end.adb (Call_Back_End): Remove previous patch,
+       the back end now gets to see the result of -gnatd.1
+       (Unnest_Subprogram_Mode) processing.
+       * elists.ads, elists.adb (List_Length): New function.
+       * exp_unst.ads, exp_unst.adb: Major changes, first complete version.
+       * sem_util.adb (Check_Nested_Access): Handle formals in
+       Unnest_Subprogram_Mode.
+       (Adjust_Named_Associations): Minor reformatting.
+       * sprint.adb (Sprint_Node_Actual): Fix failure to print aliased
+       for parameters.
+
 2015-03-02  Robert Dewar  <dewar@adacore.com>
 
        * atree.ads, atree.adb (Uint24): New function