[multiple changes]
[gcc.git] / gcc / ada / ChangeLog
index e4320981b14daa28a5f7f4359d05fc0071fb54b9..15dc2189fe7adef3c89a9303daf3ab83c9c4fd5d 100644 (file)
@@ -1,3 +1,422 @@
+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