+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