[Ada] Mimic the C++ ABI when passing class-wide conversion actuals
[gcc.git] / gcc / ada / ChangeLog
index bff06e6be436213eff682bb4689b9d6b729fe2f2..5996edc98dca805c1422a196948704f2ab02f008 100644 (file)
+2018-09-26  Javier Miranda  <miranda@adacore.com>
+
+       * sem_res.adb (Resolve_Actuals): If the formal is a class-wide
+       type conversion then do not skip resolving and expanding the
+       conversion; required to displace the pointer to the object and
+       reference the dispatch table associated with the target
+       interface type.
+
+2018-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * libgnat/g-dynhta.adb (Prepend_Or_Replace): Update the number
+       of key-value pairs in the hash table only when adding a brand
+       new pair.
+
+2018-09-26  Sergey Rybin  <rybin@adacore.com>
+
+       * doc/gnat_ugn/gnat_utility_programs.rst: Add note about
+       processing of aggregate projects in gnatmetric and gnatstub.
+
+2018-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * contracts.adb, exp_unst.adb, exp_util.adb, gnat1drv.adb,
+       opt.ads, par-prag.adb, sem_ch3.adb, sem_ch5.adb, sem_prag.adb,
+       sinfo.ads, snames.ads-tmpl: Minor reformatting.
+
+2018-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * gcc-interface/Make-lang.in: Add unit GNAT.Sets to the list of
+       front end sources.
+       * impunit.adb: Add unit GNAT.Sets to the list of predefined
+       units.
+       * Makefile.rtl: Add unit GNAT.Sets to the list of non-tasking
+       units.
+       * libgnat/g-sets.adb: New unit.
+       * libgnat/g-sets.ads: New unit.
+       * libgnat/g-dynhta.adb (Minimum_Size): Decrease to 8 in order to
+       allow for small sets.  Update all occurrences of Table_Locked to
+       Iterated.
+       (Ensure_Unlocked): Query the number of iterators.
+       (Find_Node): Use the supplied equality.
+       (Is_Empty): New routine.
+       (Lock): Update the number of iterators.
+       (Prepend_Or_Replace): Use the supplied equality.
+       (Size): Update the return type.
+       (Unlock): Update the number of iterators.
+       * libgnat/g-dynhta.ads: Update all occurrences of Table_Locked
+       to Iterated.  Rename formal subprogram Equivalent_Keys to "=".
+       (Bucket_Range_Type, Pair_Count_Type): Remove types.
+       (Not_Created, Table_Locked, Iterator_Exhausted): Remove
+       exceptions.
+       (Hash_Table): Update to store the number of iterators rather
+       than locks.
+       (Is_Empty): New routine.
+       (Size): Update the return type.
+       * libgnat/g-lists.adb: Update all occurrences of List_Locked to
+       Iterated.
+       (Ensure_Unlocked): Query the number of iterators.
+       (Length): Remove.
+       (Lock): Update the number of iterators.
+       (Size): New routine.
+       (Unlock): Update the number of iterators.
+       * libgnat/g-lists.ads: Update all occurrences of List_Locked to
+       Iterated.
+       (Element_Count_Type): Remove type.
+       (Not_Created, Table_Locked, Iterator_Exhausted): Remove
+       exceptions.
+       (Linked_List): Update type to store the number of iterators
+       rather than locks.
+       (Length): Remove.
+       (Size): New routine.
+       * libgnat/gnat.ads (Bucket_Range_Type): New type.
+       (Iterated, Iterator_Exhausted, and Not_Created): New exceptions.
+
+2018-09-26  Javier Miranda  <miranda@adacore.com>
+
+       * checks.adb (Install_Null_Excluding_Check): Do not add
+       null-excluding checks when the tree may not be fully decorated.
+       This patch cascade errors.
+
+2018-09-26  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch3.adb (Analyze_Object_Declaration): Remove test for
+       Comes_From_Source, which prevented implicit conversions from
+       being applied to anonymous access-to-subprogram formals in
+       constant declartions that arise from instance associations for
+       generic formal objects.  Add RM and AARM references to comment.
+
+2018-09-26  Olivier Hainque  <hainque@adacore.com>
+
+       * opt.ads (OpenAcc_Enabled): New flag. False by default. True
+       when OpenACC pragmas are requested to be honored, when -fopenacc
+       is found on the command line.
+       * back_end.adb (Scan_Compiler_Arguments): Set OpenACC_Enabled if
+       -fopenacc is seen on the command line.
+       * sinfo.adb, sinfo.ads (Is_OpenAcc_Environment): New
+       flag/predicate on Loop statements which embed an Acc_Kernels,
+       Acc_Parallel or Acc_Data pragma.
+       (Is_OpenAcc_Loop): New flag/predicate on Loop statements which
+       embed an Acc_Loop pragma.
+       (Set_Is_OpenAcc_Environment, Set_Is_OpenAcc_Loop): Setters for
+       the new flags.
+       * par-prag.adb (Prag): Handle Acc_Data, Acc_Loop, Acc_Parallel
+       and Acc_Kernels pragmas.  Nothing to do here, all handled by
+       sem_prag.
+       * sem_prag.adb (Acc_First, Acc_Next,
+       Validate_Acc_Condition_Clause, Validate_Acc_Data_Clause,
+       Validate_Acc_Int_Expr_Clause, Validate_Acc_Int_Expr_List_Clause,
+       Validate_Acc_Loop_Collapse, Validate_Acc_Loop_Gang,
+       Validate_Acc_Loop_Vector, Validate_Acc_Loop_Worker,
+       Validate_Acc_Name_Reduction, Validate_Acc_Size_Expressions): New
+       helper for Analyze_Pragma, to handle OpenACC pragmas.
+       (Analyze_Pragma): Handle Acc_Data, Acc_Loop, Acc_Parallel and
+       Acc_Kernels pragmas.
+       * sem_ch5.adb (Disable_Constant): Unset Is_True_Constant on
+       variable entity, action for ...
+       (Disable_Constants): Helper for Analyze_Loop_Statement, to ...
+       (Analyze_Loop_Statement): Disable True_Constant on variables
+       referenced within an OpenACC environment.
+       * snames.ads-tmpl: Declare Name_Ids for the OpenACC directives
+       and clauses we can handle. Remove an exraneous whitespace before
+       columns, preventing line length overflow in the generated spec
+       with Ids now reaching beyond 999.
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Document
+       pragma Acc_Parallel, Acc_Loop, Acc_Kernels and Acc_Data.
+       * gnat_rm.texi: Regenerate.
+
+2018-09-26  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Is_Onown_Limited): A derived type whose parent P
+       is a derived limited record is not itself limited if P is a
+       derived limited interface.
+
+2018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch7.adb (Has_Referencer): Remove Top_Level parameter and
+       add In_Nested_Instance and
+       Has_Outer_Referencer_Of_Non_Subprograms parameters.  Rename
+       Has_Non_Subprograms_Referencer variable into
+       Has_Referencer_Of_Non_Subprograms and initialize it with the new
+       third parameter.  Adjust recursive calls and to the renaming.
+       Replace test on Top_Level with test on In_Nested_Instance to
+       decide whether to clear the Is_Public flag on entities.
+       (Hide_Public_Entities): Adjust call to Has_Referencer.
+
+2018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_disp.adb (Expand_Interface_Conversion): Use Present test.
+       (Expand_Interface_Thunk): Propagate debug info setting from
+       target.
+       * exp_util.ads (Find_Interface_Tag): Adjust comment.
+       * exp_util.adb (Find_Interface_Tag): Remove assertions of
+       success.
+       * sem_util.adb (Is_Variable_Size_Record): Only look at
+       components and robustify the implementation.
+       * fe.h (Find_Interface_Tag): Declare.
+       (Is_Variable_Size_Record): Likewise.
+
+2018-09-26  Thomas Quinot  <quinot@adacore.com>
+
+       * exp_util.adb (Make_CW_Equivalent_Type): Propagate bit order
+       and scalar storage order from root type to classwide equivalent
+       type, to prevent rejection of the equivalent type by the
+       freezing circuitry.
+
+2018-09-26  Justin Squirek  <squirek@adacore.com>
+
+       * sem_ch5.adb (Analyze_Iterator_Specification): Add conditional
+       to freeze called functions within iterator specifications during
+       full analysis.
+       (Preanalyze_Range): Minor typo fix.
+
+2018-09-26  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb (Analyze_Function_Return): If the return type has
+       a dynamic_predicate, apply a Predicate_Check to the expression,
+       given that it is implicitly converted to the return type.
+       Exclude case expressions from the check, because in this context
+       the expression is expanded into individual return statements.
+
+2018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Task_Type>: In
+       -gnatct mode, process the discriminants only for a definition.
+
+2018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * repinfo.adb (List_Record_Layout): Be prepared for JSON output.
+       (List_Record_Info): Use the flat representation for record
+       subtypes in the JSON format.
+
+2018-09-26  Justin Squirek  <squirek@adacore.com>
+
+       * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
+       documentation and an extra conditional check for RCI units so
+       that generated ali files will list the spec only instead of a
+       body when a body is not found.
+
+2018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/gigi.h (error_gnat_node): Delete.
+       * gcc-interface/trans.c (error_gnat_node): Likewise.
+       (gigi): Replace it with Current_Error_Node.
+       (gnat_to_gnu): Likewise.
+       * gcc-interface/utils.c (rest_of_subprog_body_compilation):
+       Likewise.
+       * gcc-interface/misc.c (internal_error_function): Do not set it.
+
+2018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Adjust
+       code retrieving the address when a clause has already been
+       processed.
+       * gcc-interface/trans.c (gnat_to_gnu)
+       <N_Attribute_Definition_Clause>: For an object with a Freeze
+       node, build a meaningful expression.
+
+2018-09-26  Arnaud Charlet  <charlet@adacore.com>
+
+       * gnat1drv.adb (Adjust_Global_Switches): -gnatd_A sets
+       Opt.Disable_ALI_File.
+       * debug.adb: Update debug flags documentation.
+
+2018-09-26  Ed Schonberg  <schonberg@adacore.com>
+
+       * contracts.adb (Analyze_Entry_Or_Subprogram_Contract): The
+       analysis of preconditions specified by pragmas (rather than
+       aspects) is not delayed, and therefore expressions functions
+       that are completions do not need special handling during
+       expansion.
+
+2018-09-26  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_unst.adb: Fix handling of up level references for entries.
+
+2018-09-26  Ed Schonberg  <schonberg@adacore.com>
+
+       * contracts.adb (Expand_Subprogram_Contract,
+       Process_Preconditions_For): Apply Freeze_Expr_Types to the
+       expression for a precondition of an expression function that is
+       a completion, when the completion appears in the private part
+       and the declaration it completes is in the visible part of the
+       same package.
+       * freeze.adb (Freeze_Expr_Types): Do not establish the scope of
+       the operation if it is already installed, as will be the case
+       when called to analyze the contract oc the subprogram (which
+       happens when generating code inside the subprogram body).
+
+2018-09-26  Maroua Maalej  <maalej@adacore.com>
+
+       * sem_spark.adb (Check_Param_In, Setup_Parameter_Or_Global):
+       Change the operation associated to assigning to an IN parameter.
+       In SPARK, IN access-to-variable is an observe operation for a
+       function, and borrow operation for a procedure.
+
+2018-09-26  Arnaud Charlet  <charlet@adacore.com>
+
+       * vxlink.adb: Minor reformatting.
+
+2018-09-26  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch9.adb, layout.adb, sem_attr.adb, sem_res.adb: Fix
+       miscellaneous typos.
+
+2018-09-26  Jerome Lambourg  <lambourg@adacore.com>
+
+       * vxlink.adb: Kill a CodePeer warning.
+
+2018-09-24  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR ada/87396
+       * fe.h (Get_Attribute_Definition_Clause): Use 'unsigned char' instead
+       of 'char' as the type of the second parameter.
+
+2018-09-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.rtl (arm% linux-gnueabi%): Always set EH_MECHANISM to -arm.
+
+2018-09-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR ada/81103
+       * terminals.c: Do not include termio.h.
+
+2018-08-27  Martin Liska  <mliska@suse.cz>
+
+       * gcc-interface/decl.c (update_profile): Use new function
+       fndecl_built_in_p and remove check for FUNCTION_DECL if
+       possible.
+       * gcc-interface/gigi.h (call_is_atomic_load): Likewise.
+       * gcc-interface/utils.c (gnat_pushdecl): Likewise.
+
+2018-08-23  Giuliano Belinassi  <giuliano.belinassi@usp.br>
+
+       * exp_unst.ads: Fix typo 'exapnded' to 'expanded'.
+
+2018-08-21  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * checks.adb, contracts.adb, exp_aggr.adb, exp_attr.adb,
+       exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_unst.adb,
+       exp_util.adb, freeze.adb, gnatlink.adb, layout.adb,
+       lib-writ.adb, lib-xref-spark_specific.adb, sem_ch13.adb,
+       sem_ch3.adb, sem_ch6.adb, sem_res.adb, sem_util.adb, sinfo.ads,
+       sprint.adb: Minor reformatting.
+
+2018-08-21  Jerome Lambourg  <lambourg@adacore.com>
+
+       * vxlink-bind.adb, vxlink-bind.ads, vxlink-link.adb,
+       vxlink-link.ads, vxlink-main.adb, vxlink.adb, vxlink.ads: Add a
+       new tool vxlink to handle VxWorks constructors in DKMs.
+       * gcc-interface/Makefile.in: add rules to build vxlink
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb (Analyze_Subprogram_Body_Helper, Mask_Type):
+       Refine the handling of freezing types for expression functions
+       that are not completions, when analyzing the generated body for
+       the function: the body is inserted at the end of the enclosing
+       declarative part, and its analysis may freeze types declared in
+       the same scope that have not been frozen yet.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb: Remove Freeze_Expr_Types.
+       * freeze.ads, freeze.adb (Freeze_Expr_Types): Moved from
+       sem_ch6.adb, and extended to handle other expressions that may
+       contain unfrozen types that must be frozen in their proper
+       scopes.
+       * contracts.adb (Analyze_Entry_Or_Subprogram_Contract): If the
+       contract is for the generated body of an expression function
+       that is a completion, traverse the expressions for pre- and
+       postconditions to freeze all types before adding the contract
+       code within the subprogram body.
+
+2018-08-21  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_ch10.adb: Remove the with and use clause for unit Ghost.
+       (Analyze_With_Clause): Do not mark a with clause which mentions
+       an ignored Ghost code for elimination.
+
+2018-08-21  Javier Miranda  <miranda@adacore.com>
+
+       * lib-writ.adb (Write_Unit_Information): Handle pragmas removed
+       by the expander.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb (Check_Synchronized_Overriding): The conformance
+       between an overriding protected operation and the overridden
+       abstract progenitor operation requires subtype conformance;
+       requiring equality of return types in the case of a function is
+       too restrictive and leads to spurious errors when the return
+       type is a generic actual.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch9.adb (Expand_N_Timed_Entry_Call,
+       Expand_Conditional_Entry_Call): Use Reset_Scopes_Of to set
+       properly the scope of all entities created in blocks generated
+       by the expansion of these constructs.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch13.adb (Build_Predicate_Functioss): Apply
+       Reset_Quantified_Variables_Scope after predicate function has
+       been analyzed, so that the scope can be reset on the generated
+       loop statements that have replaced the quantified expressions.
+
+2018-08-21  Bob Duff  <duff@adacore.com>
+
+       * einfo.ads, einfo.adb (Private_View, Shadow_Entities): Remove
+       obsolete code.
+
+2018-08-21  Maroua Maalej  <maalej@adacore.com>
+
+       * sem_spark.adb (Check_Call_Statement): Check global and formal
+       parameter permissions at call sites.
+       (Check_Callable_Body): Assume permissions on globals and
+       parameters depending on their modes then analyse the body
+       operations.
+       (Check_Declaration): Consider both deep (including elementary
+       access) object declarations and normal variables. First check
+       whether the deep object is of Ownership Aspec True or not, then,
+       depending on its initialization, assign the appropriate state.
+       Check related to non access type variables deal with
+       initialization value permissions.
+       (Check_Expression): Check nodes used in the expression being
+       analyzed.
+       (Check_Globals): Call by Check_Call_Statement to perform the
+       check on globals.
+       (Check_List): Call Check_Node on each element of the list.
+       (Check_Loop_Statement): Check the Iteration_Scheme and loop
+       statements.
+       (Check_Node): Main traversal procedure to check safe pointer usage.
+       (Check_Package_Body): Check subprogram's body.
+       (Check_Param_In): Take a formal and an actual parameter and
+       Check the permission of every in-mode parameter.
+       (Check_Param_Out): Take a formal and an actual parameter and
+       check the state of out-mode and in out-mode parameters.
+       (Check_Statement): Check statements other than procedure call.
+       (Get_Perm, Get_Perm_Or_Tree, Get_Perm_Tree): Find out the state
+       related to the given name.
+       (Is_Deep): Return True if an object is of access type or has
+       subfields of access type.
+       (Perm_Error, Perm_Error_Subprogram_End): Add an error message
+       whenever the found state on the given name is different from the
+       one expected (in the statement being analyzed).
+       (Process_Path): Given an operation and a current state, call
+       Perm_Error if there is any mismatch.
+       (Return_Declarations, Return_Globals, Return_The_Global): Check
+       the state of a given name at the end of the subprogram. These
+       procedures may change depending on how we shall finally deal
+       with globals and the rhs state in a move operation.
+       (Set_Perm_Extensions, Set_Perm_Prefixes_Borrow,
+       Set_Perm_Prefixes, Setup_Globals, Setup_Parameter_Or_Global,
+       Setup_Parameters): Set up the new states to the given node and
+       up and down the tree after an operation.
+       (Has_Ownership_Aspect_True): This function may disappear later
+       when the Ownership Aspect will be implemented in the FE.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_res.adb (Resolve_Call): Resolve correctly a parameterless
+       call that returns an access type whose designated type is the
+       component type of an array, when the function has no defaulted
+       parameters.
+
+2018-08-21  Yannick Moy  <moy@adacore.com>
+
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Document entries of the target parametrization file.
+       * gnat_ugn.texi: Regenerate.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_attr.adb: Set scope of elaboration flag for 'Access.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * sprint.adb: Add guard on printing aspects.
+
+2018-08-21  Javier Miranda  <miranda@adacore.com>
+
+       * exp_cg.adb (Generate_CG_Output): Handle calls removed by the
+       expander.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * layout.adb: Do not set size of access subprogram if unnesting.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * freeze.adb: Remove warnings for access to subprograms when
+       unnesting is active.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_aggr.adb (Expand_Array_Aggregate): If the component type
+       is limited, the array must be constructed in place, so set flag
+       In_Place_Assign_OK_For_Declaration accordingly. This prevents
+       improper copying of an array of tasks during initialization.
+
+2018-08-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (Call_to_gnu): Always suppress an
+       unchecked conversion around the actual for an In parameter
+       passed by copy.
+
+2018-08-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_util.adb (Is_Possibly_Unaligned_Object): For the case of a
+       selected component inherited in a record extension and subject
+       to a representation clause, retrieve the position and size from
+       the original record component.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_util.ads, sem_util.adb (New_External_Entity): Type of
+       Suffix_Index must be Int, not Nat, so that a negative value can
+       be used to generate a unique name for an external object, as
+       specified in Tbuild.New_External_Name.
+       (Scope_Within): Handle private type whose completion is a
+       synchronized type (For unnesting).
+       * itypes.ads, itypes.adb (Create_Itype): Ditto
+       * sem_ch3.adb (Constrain_Corresponding_Record): Generate a
+       unique name for the created subtype, because there may be
+       several discriminated tasks present in the same scope, and each
+       needs its distinct corresponding record subtype.
+
+2018-08-21  Yannick Moy  <moy@adacore.com>
+
+       * doc/gnat_ugn/gnat_and_program_execution.rst: Update
+       documentation of dimensionality analysis.
+       * gnat_ugn.texi: Regenerate.
+       * Makefile.rtl, impunit.adb: Consider the new units.
+       * libgnat/s-dfmkio.ads, libgnat/s-dfmopr.ads,
+       libgnat/s-diflmk.ads: New units based on Float.
+       * libgnat/s-dilomk.ads, libgnat/s-dlmkio.ads,
+       libgnat/s-dlmopr.ads: New units based on Long_Float.
+       * libgnat/s-dmotpr.ads: Rename to libgnat/s-dgmgop.ads and turn
+       into an instance of
+       System.Dim.Generic_Mks.Generic_Other_Prefixes.
+       * libgnat/s-dimmks.ads: Rename to libgnat/s-digemk.ads and turn
+       into an instance of System.Dim.Generic_Mks.
+
+2018-08-21  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * impunit.adb: Add g-lists to the set of non-implementation
+       units.
+       * libgnat/g-lists.adb, libgnat/g-lists.ads: New unit.
+       * Makefile.rtl: Add g-lists to the set of non-tasking units.
+       * gcc-interface/Make-lang.in: Add g-lists to the set of files
+       used by gnat1.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch9.adb (Reset_Scopes): Do not recurse into type
+       declarations when resetting the scope of entities declared the
+       procedures generated for entry bodies and accept alternatives.
+       Use the entity of the procedure declaration, not its body, as
+       the new scope.
+
+2018-08-21  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * einfo.adb (Elaboration_Entity): Include entries and entry
+       families in the set of legal entities.
+       (Elaboration_Entity_Required): Include entries and entry
+       families in the set of legal entities.
+       (Set_Elaboration_Entity): Include entries and entry families in
+       the set of legal entities.
+       (Set_Elaboration_Entity_Required): Include entries and entry
+       families in the set of legal entities.
+       (Write_Field13_Name): Update the output of attribute
+       Elaboration_Entity.
+       * einfo.ads: Attributes Elaboration_Entity and
+       Elaboration_Entity_Required now apply to entries and entry
+       families.
+
+2018-08-21  Arnaud Charlet  <charlet@adacore.com>
+
+       * set_targ.adb: Mark some CodePeer message as Intentional.
+
+2018-08-21  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_res.adb (Resolve_Call): Force the freezing of an
+       expression function that is called to provide a default value
+       for a defaulted discriminant in an object initialization.
+
+2018-08-21  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: New package
+       Dynamic_HTable.
+
+2018-08-21  Javier Miranda  <miranda@adacore.com>
+
+       * checks.ads (Determine_Range): Adding documentation.
+       * checks.adb (Determine_Range): Don't deal with enumerated types
+       with non-standard representation.
+       (Convert_And_Check_Range): For conversion of enumeration types
+       with non standard representation to an integer type perform a
+       direct conversion to the target integer type.
+
+2018-08-21  Piotr Trojanek  <trojanek@adacore.com>
+
+       * lib-xref.ads, lib-xref-spark_specific.adb
+       (Enclosing_Subprogram_Or_Library_Package): Now roughtly works
+       for pragmas that come from aspect specifications.
+
+2018-08-21  Pierre-Marie de Rodat  <derodat@adacore.com>
+
+       * sa_messages.ads, sa_messages.adb: New source files.
+
+2018-08-03  Pierre-Marie de Rodat  <derodat@adacore.com>
+
+       Reverts
+       2018-07-06  Jim Wilson  <jimw@sifive.com>
+
+       * Make-generated.in (treeprs.ads): Use $(GNATMAKE) instead of gnatmake.
+       (einfo.h, sinfo.h, stamp-snames, stamp-nmake): Likewise.
+       * gcc-interface/Makefile.in (xoscons): Likewise.
+
+2018-07-31  Alexandre Oliva  <oliva@adacore.com>
+           Olivier Hainque  <hainque@adacore.com>
+
+       * gcc-interface/trans.c: Include debug.h.
+       (file_map): New static variable.
+       (gigi): Set it.  Create decl_to_instance_map when needed.
+       (Subprogram_Body_to_gnu): Pass gnu_subprog_decl to...
+       (Sloc_to_locus): ... this.  Add decl parm, map it to instance.
+       * gcc-interface/gigi.h (Sloc_to_locus): Adjust declaration.
+
+2018-07-31  Arnaud Charlet  <charlet@adacore.com>
+
+       * clean.adb, gnatchop.adb, gnatfind.adb, gnatls.adb,
+       gnatmake.ads, gnatxref.adb, make.adb, make.ads, make_util.ads,
+       sfn_scan.adb, vxaddr2line.adb, xeinfo.adb, xoscons.adb,
+       xr_tabls.adb, xref_lib.adb: Address CodePeer messages.
+
+2018-07-31  Arnaud Charlet  <charlet@adacore.com>
+
+       * gnatlink.adb: Fix potential Constraint_Error if
+       Library_Version is too long.
+
+2018-07-31  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_elab.adb: Remove duplicate condition detected by CodePeer.
+
+2018-07-31  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_unst.adb (Subp_Index): In the case of a protected
+       operation, the relevant entry is the generated
+       protected_subprogram_body into which the original body is
+       rewritten. Assorted cleanup and optimizations.
+
+2018-07-31  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_attr.adb (Expand_Attribute, case Fixed_Value): Set the
+       base type of the result to ensure that proper overflow and range
+       checks are generated.  If the target is a fixed-point tyoe,
+       generate the required overflow and range checks explicitly,
+       rather than relying on Apply_Type_Conversion_Checks, which might
+       simply set the Do_Range_Check flag and rely on the backend to
+       add the check.
+
+2018-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_res.adb (Resolve_Call): Establish a transient scope to
+       manage the secondary stack when the designated type of an
+       access-to-subprogram requires it.
+
+2018-07-31  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch7.adb (Check_Unnesting_Elaboration_Code): To find local
+       subprograms in the elaboration code for a package body, recurse
+       through nested statement sequences because a compiler-generated
+       procedure may appear within a condition statement.
+
+2018-07-31  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch6.adb (Expand_Protected_Subprogram_Call): Handle
+       properly a protected call that includes a default parameter that
+       is a call to a protected function of the same type.
+
+2018-07-31  Justin Squirek  <squirek@adacore.com>
+
+       * lib-writ.adb (Write_With_Lines): Modfiy the generation of
+       dependencies within ali files so that source unit bodies are
+       properly listed even if said bodies are missing.  Perform legacy
+       behavior in GNATprove mode.
+       * lib-writ.ads: Modify documentation to reflect current behavior.
+
+2018-07-31  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnarl/s-osinte__solaris.ads (upad64_t): New private type.
+       (mutex_t): Use it for 'lock' and 'data' components.
+       (cond_t): Likewise for 'data' and use single 'flags' component.
+
+2018-07-31  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch5.adb (Make_Field_Assign): Force temporarily generated
+       objects for assignment of overlaid user objects to be renamings
+       instead of constant declarations.
+
+2018-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch9.adb (Analyze_Pragmas): New routine.
+       (Build_Private_Protected_Declaration): Code clean up. Relocate
+       relevant aspects and pragmas from the stand-alone body to the
+       newly created spec.  Explicitly analyze any pragmas that have
+       been either relocated or produced by the analysis of the
+       aspects.
+       (Move_Pragmas): New routine.
+       * sem_prag.adb (Find_Related_Declaration_Or_Body): Recognize the
+       case where a pragma applies to the internally created spec for a
+       stand-along subprogram body declared in a protected body.
+
+2018-07-31  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace
+       calls to Current_Scope in three assertions with calls to
+       Current_Subprogram.
+
+2018-07-31  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_eval.adb (Check_Non_Static_Context): Do not warn on an
+       integer literal greater than the upper bound of
+       Universal_Integer'Last when expansion is disabled, to avoid a
+       spurious warning over ranges involving 64-bit modular types.
+
+2018-07-31  Arnaud Charlet  <charlet@adacore.com>
+
+       * einfo.adb (Write_Entity_Flags): Also print
+       Is_Activation_Record flag.
+
+2018-07-31  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_aggr.adb, exp_ch4.adb, exp_ch6.adb, lib-xref.adb,
+       repinfo.adb, sem_ch9.adb: Minor replace Ekind membership tests
+       with a wrapper routine.
+
+2018-07-31  Piotr Trojanek  <trojanek@adacore.com>
+
+       * ali.adb (Known_ALI_Lines): Remove 'F' as a prefix for lines
+       related to the FORMAL analysis done by GNATprove.
+
+2018-07-31  Javier Miranda  <miranda@adacore.com>
+
+       * sem.ads (Inside_Preanalysis_Without_Freezing): New global
+       counter.
+       * sem.adb (Semantics): This subprogram has now the
+       responsibility of resetting the counter before analyzing a unit,
+       and restoring its previous value before returning.
+       * freeze.adb (Freeze_Entity): Do not freeze if we are
+       preanalyzing without freezing.
+       * sem_res.adb (Preanalyze_And_Resolve): Set & restore
+       In_Preanalysis_Without_Freezing.
+
+2018-07-31  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch4.adb (Traverse_Homonyms): Consider generic actuals that
+       may rename a matching class-wide operation only if the renaming
+       declaration for that actual is in an enclosing scope (i.e.
+       within the corrresponding instance).
+
+2018-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * checks.adb, contracts.adb, exp_aggr.adb, exp_ch5.adb,
+       exp_disp.adb, make.adb, sem_ch4.adb, sem_eval.adb, sem_res.adb,
+       usage.adb: Minor reformatting.
+
+2018-07-31  Bob Duff  <duff@adacore.com>
+
+       * sem_res.adb (Resolve_Allocator): Do not complain about the
+       implicit allocator that occurs in the expansion of a return
+       statement for a build-in-place function.
+
+2018-07-20  Martin Sebor  <msebor@redhat.com>
+
+       PR middle-end/82063
+       * gcc-interface/misc.c (gnat_handle_option): Change function argument
+       to HOST_WIDE_INT.
+
+2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (choices_to_gnu): Rename parameters.  Deal with
+       an operand of Character type.  Factor out range generation to the end.
+       Check that the bounds are literals and convert them to the type of the
+       operand before building the ranges.
+       * gcc-interface/utils.c (make_dummy_type): Minor tweak.
+       (make_packable_type): Propagate TYPE_DEBUG_TYPE.
+       (maybe_pad_type): Likewise.
+
+2018-07-17  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch4.adb (Try_Object_Operation): Handle properly a prefixed call
+       in an instance, when the generic parameters include an interface type
+       and a abstract operation of that type, and the actuals in the instance
+       include an interface type and a corresponding abstract operation of it,
+       with a different name than the corresponding generic subprogram
+       parameter.
+
+2018-07-17  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_eval.adb (Rewrite_In_Raise_CE): Keep the original reason in more
+       cases.
+
+2018-07-17  Arnaud Charlet  <charlet@adacore.com>
+
+       * checks.adb (Apply_Division_Check): Add provision for floating-point
+       checks.
+
+2018-07-17  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_aggr.adb (Component_OK_For_Backend): If an array component of the
+       enclosing record has a bound that is out of range (and that has been
+       rewritten as a raise statement) the aggregate is not OK for any back
+       end, and should be expanded into individual assignments.
+
+2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * atree.adb (Relocate_Node): Simplify with Is_Rewrite_Substitution.
+
+2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.ads (Denotes_Same_Object): Likewise.
+       * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix RM rule references.
+
+2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_disp.adb (Make_Tags): When the type has user-defined primitives,
+       build the access type that is later used by Build_Get_Prim_Op_Address
+       as pointing to a subtype of Ada.Tags.Address_Array.
+
+2018-07-17  Patrick Bernardi  <bernardi@adacore.com>
+
+       * libgnat/s-memory__mingw.adb: Remove.
+       * Makefile.rtl: Remove s-memory.adb target pair from the Cygwin/Mingw32
+       section.
+
+2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * frontend.adb (Frontend): The removal of ignored Ghost code must be
+       the last semantic operation performed on the tree.
+
+2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * frontend.adb (Frontend): Update the call to Register_Config_Switches.
+       * inline.ads: Add new component Config_Switches to record
+       Pending_Body_Info which captures the configuration state of the pending
+       body.  Remove components Version, Version_Pragma, SPARK_Mode, and
+       SPARK_Mode_Pragma from record Pending_Body_Info because they are
+       already captured in component Config_Switches.
+       * opt.adb (Register_Opt_Config_Switches): Rename to
+       Register_Config_Switches.
+       (Restore_Opt_Config_Switches): Rename to Restore_Config_Switches.
+       (Save_Opt_Config_Switches): Rename to Save_Config_Switches. This
+       routine is now a function, and returns the saved configuration state as
+       an aggregate to avoid missing an attribute.
+       (Set_Opt_Config_Switches): Rename to Set_Config_Switches.
+       * opt.ads (Register_Opt_Config_Switches): Rename to
+       Register_Config_Switches.
+       (Restore_Opt_Config_Switches): Rename to Restore_Config_Switches.
+       (Save_Opt_Config_Switches): Rename to Save_Config_Switches. This
+       routine is now a function.
+       (Set_Opt_Config_Switches): Rename to Set_Config_Switches.
+       * par.adb (Par): Update the calls to configuration switch-related
+       subprograms.
+       * sem.adb (Semantics): Update the calls to configuration switch-related
+       subprograms.
+       * sem_ch10.adb (Analyze_Package_Body_Stub): Update the calls to
+       configuration switch-related subprograms.
+       (Analyze_Protected_Body_Stub): Update the calls to configuration
+       switch-related subprograms.
+       (Analyze_Subprogram_Body_Stub): Update calls to configuration
+       switch-related subprograms.
+       * sem_ch12.adb (Add_Pending_Instantiation): Update the capture of
+       pending instantiation attributes.
+       (Inline_Instance_Body): Update the capture of pending instantiation
+       attributes.  It is no longer needed to explicitly manipulate the SPARK
+       mode.
+       (Instantiate_Package_Body): Update the restoration of the context
+       attributes.
+       (Instantiate_Subprogram_Body): Update the restoration of context
+       attributes.
+       (Load_Parent_Of_Generic): Update the capture of pending instantiation
+       attributes.
+       (Set_Instance_Env): Update the way relevant configuration attributes
+       are saved and restored.
+
+2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Deal with
+       more rvalues in the expression of a renaming.
+
+2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Define for
+       METHOD_TYPE too.
+       (TYPE_RETURN_UNCONSTRAINED_P): Likewise.
+       (TYPE_CI_CO_LIST): Likewise.
+       * gcc-interface/gigi.h (is_cplusplus_method): Delete.
+       (fntype_same_flags_p): Adjust comment.
+       * gcc-interface/decl.c (Has_Thiscall_Convention): Delete.
+       (gnat_to_gnu_entity) <E_Subprogram_Type>: Do not set the "thiscall"
+       attribute directly.
+       (is_cplusplus_method): Make static and adjust head comment.
+       (gnat_to_gnu_param): Return a pointer for the "this" parameter of
+       C++ constructors.
+       (gnat_to_gnu_subprog_type): Turn imported C++ constructors into their
+       callable form.  Generate a METHOD_TYPE node for imported C++ methods.
+       Set param_list at the very end of the processing.
+       (substitute_in_type) <METHOD_TYPE>: New case.
+       * gcc-interface/misc.c (gnat_print_type) <METHOD_TYPE>: Likewise.
+       (gnat_type_hash_eq): Accept METHOD_TYPE.
+       * gcc-interface/trans.c (Identifier_to_gnu): Deal with METHOD_TYPE.
+       (Attribute_to_gnu): Likewise.
+       (Call_to_gnu): Likewise.
+       (process_freeze_entity): Likewise.
+       * gcc-interface/utils.c (create_subprog_decl): Adjust head comment.
+       (fntype_same_flags_p): Likewise.
+
+2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * inline.adb (Expand_Inlined_Call): Remove extra parentheses.
+
+2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_disp.adb (Gen_Parameters_Profile): Make the _Init parameter an
+       In/Out parameter.
+       (Set_CPP_Constructors): Adjust comment accordingly.
+
+2018-07-17  Bob Duff  <duff@adacore.com>
+
+       * exp_disp.adb (Build_Class_Wide_Check): Return early if the
+       precondition is supposed to be ignored.
+
+2018-07-17  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb (Check_Untagged_Equality): Extend check to operations
+       declared in the same scope as the operand type, when that scope is a
+       procedure.
+
+2018-07-17  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_unst.adb (Unnest_Subprograms): Do nothing if the expander is not
+       active.  Don't use Get_Actual_Subtype for record subtypes.  Ignore
+       rewritten identifiers and uplevel references to bounds of types that
+       come from the original type reference.
+
+2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch13.adb, exp_ch7.adb, exp_unst.adb, freeze.adb,
+       libgnat/s-os_lib.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb,
+       sem_eval.adb, sem_res.adb, sem_util.adb: Minor reformatting.
+
+2018-07-17  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch13.adb (Expand_N_Freeze_Entity): Handle subtype declared for an
+       iterator.
+       * freeze.adb (Freeze_Expression): Handle freeze of an entity defined
+       outside of a subprogram body. This case was previously handled during
+       preanalysis; the frozen entities were remembered and left pending until
+       we continued freezeing entities outside of the subprogram. Now, when
+       climbing the parents chain to locate the correct placement for the
+       freezeing node, we check if the entity can be frozen and only when no
+       enclosing node is marked as Must_Not_Freeze the entity is frozen.
+       * sem_ch3.ads (Preanalyze_Default_Expression): Declaration moved to the
+       package body.
+       * sem_ch3.adb (Preanalyze_Default_Expression): Code adjusted to invoke
+       the new subprogram Preanalyze_With_Freezing_And_Resolve.
+       * sem_ch6.adb (Preanalyze_Formal_Expression): New subprogram.
+       (Analyze_Expression_Function, Process_Formals): Invoke
+       Preanalyze_Formal_Expression instead of Preanalyze_Spec_Expression
+       since the analysis of the formals may freeze entities.
+       (Analyze_Subprogram_Body_Helper): Skip building the body of the
+       class-wide clone for eliminated subprograms.
+       * sem_res.ads, sem_res.adb (Preanalyze_And_Resolve): New subprogram.
+       Its code is basically the previous version of this routine but extended
+       with an additional parameter which is used to specify if during
+       preanalysis we are allowed to freeze entities.  If the new parameter is
+       True then the subtree root node is marked as Must_Not_Freeze and no
+       entities are frozen during preanalysis.
+       (Preanalyze_And_Resolve): Invokes the internal version of
+       Preanalyze_And_Resolve without entity freezing.
+       (Preanalyze_With_Freezing_And_Resolve): Invokes the internal version of
+       Prenalyze_And_Resolve with freezing enabled.
+
+2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.ads, libgnat/g-comlin.ads: Minor change "ie" to "i.e." in docs
+       and comments.
+
+2018-07-17  Justin Squirek  <squirek@adacore.com>
+
+       * libgnat/s-os_lib.adb (Argument_String_To_List): Fix trimming of
+       whitespace.
+
+2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_prag.adb (Has_Visible_State): Do not consider constants as
+       visible state because it is not possible to determine whether a
+       constant depends on variable input.
+       (Propagate_Part_Of): Add comment clarifying the behavior with respect
+       to constant.
+
+2018-07-17  Yannick Moy  <moy@adacore.com>
+
+       * gnat1drv.adb (Gnat1drv): Do not issue warning about exception not
+       being propagated in GNATprove mode.
+
+2018-07-17  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * libgnat/g-socket.adb, libgnat/g-socket.ads: Reorganize and make
+       public components of Inet_Addr_Type. Introduce public binary
+       operations.
+
+2018-07-17  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch7.adb (Make_Transient_Block): When determining whether an
+       enclosing scope already handles the secondary stack, take into account
+       transient blocks nested in a block that do not manage the secondary
+       stack and are located within a loop.
+
+2018-07-17  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_util.adb (Enclosing_Subprogram): Protected entries and task
+       entries must be treated separately: task entries are within the
+       enclosing subprogram of the task type, while protected entries are
+       transformed into the corresponding Protected_Body_Subprogram, which is
+       the enclosing_subprogram of any subprogram declared within the entry
+       body.
+
+2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add missing
+       sections on -gnatH and -gnatJ compiler switches.
+       * gnat_ugn.texi: Regenerate.
+
+2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * alloc.ads: Update the allocation metrics of the ignored Ghost nodes
+       table.
+       * atree.adb: Add a soft link for a procedure which is invoked whenever
+       an ignored Ghost node or entity is created.
+       (Change_Node): Preserve relevant attributes which come from the Flags
+       table.
+       (Mark_New_Ghost_Node): Record a newly created ignored Ghost node or
+       entity.
+       (Rewrite): Preserve relevant attributes which come from the Flags
+       table.
+       (Set_Ignored_Ghost_Recording_Proc): New routine.
+       * atree.ads: Define an access-to-suprogram type for a soft link which
+       records a newly created ignored Ghost node or entity.
+       (Set_Ignored_Ghost_Recording_Proc): New routine.
+       * ghost.adb: Remove with and use clause for Lib.  Remove table
+       Ignored_Ghost_Units.  Add new table Ignored_Ghost_Nodes.
+       (Add_Ignored_Ghost_Unit): Removed.
+       (Initialize): Initialize the table which stores ignored Ghost nodes.
+       Set the soft link which allows Atree.Mark_New_Ghost_Node to record an
+       ignored Ghost node.
+       (Is_Ignored_Ghost_Unit): Use the ultimate original node when checking
+       an eliminated ignored Ghost unit.
+       (Lock): Release and lock the table which stores ignored Ghost nodes.
+       (Mark_And_Set_Ghost_Assignment): Record rather than propagate ignored
+       Ghost nodes.
+       (Mark_And_Set_Ghost_Procedure_Call): Record rather than propagate
+       ignored Ghost nodes.
+       (Mark_Ghost_Clause): Record rather than propagate ignored Ghost nodes.
+       (Mark_Ghost_Declaration_Or_Body): Record rather than propagate ignored
+       Ghost nodes.
+       (Mark_Ghost_Pragma): Record rather than propagate ignored Ghost nodes.
+       (Propagate_Ignored_Ghost_Code): Removed.
+       (Record_Ignored_Ghost_Node): New routine.
+       (Remove_Ignored_Ghost_Code): Reimplemented.
+       (Remove_Ignored_Ghost_Node): New routine.
+       (Ultimate_Original_Node): New routine.
+       * ghost.ads (Check_Ghost_Completion): Removed.
+       * sem_ch8.adb (Analyze_Use_Package): Remove obsolete code. Mark a use
+       package clause as ignored Ghost if applicable.
+       * sem_util.adb (Is_Body_Or_Package_Declaration): Reimplemented.
+
+2018-07-17  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Moved to library level
+       to reuse it.
+       (Analyze_Loop_Statement): Wrap the loop in a block when the evaluation
+       of the loop iterator relies on the secondary stack.
+
+2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb (Next_Actual): If the parent is a N_Null_Statement,
+       which happens for inlined calls, then fetch the next actual from the
+       original AST.
+
+2018-07-17  Ed Schonberg  <schonberg@adacore.com>
+
+       * einfo.ads: Update documentation for Scalar_Range.
+
+2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * lib-xref-spark_specific.adb (Create_Heap): Attach the HEAP entity to
+       the Standard package.
+
+2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.adb (Is_Wrapper_Package): Remove extra parentheses.
+
+2018-07-17  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_util.adb (Enclosing_Subprogram): Handle properly entries, and
+       synchronized types that are completions of limited types or private
+       extensions.
+       (Scope_Within): Handle properly accept statements in task bodies.
+
+2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_prag.adb (Has_Visible_State): Do not consider generic formals
+       because they are not part of the visible state space. Add constants to
+       the list of acceptable visible states.
+       (Propagate_Part_Of): Do not consider generic formals when propagating
+       the Part_Of indicator.
+       * sem_util.adb (Entity_Of): Do not follow renaming chains which go
+       through a generic formal because they are not visible for SPARK
+       purposes.
+       * sem_util.ads (Entity_Of): Update the comment on usage.
+
+2018-07-17  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_util.adb (Gather_Components): A discriminant of an ancestor may
+       have been constrained by a later ancestor, so when looking for the
+       value of that hidden discriminant we must examine the stored constraint
+       of other ancestors than the immediate parent type.
+
+2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_ch6.adb (Build_Heap_Or_Pool_Allocator): Ensure that scoping
+       constructs and entities within receive new entities when replicating a
+       tree.
+       (Expand_N_Extended_Return_Statement): Ensure that scoping constructs
+       and entities within receive new entities when replicating a tree.
+       * sem_util.adb (New_Copy_Tree): Add new formal Scopes_In_EWA_OK.
+       (Visit_Entity): Visit entities within scoping constructs inside
+       expression with actions nodes when requested by the caller. Add blocks,
+       labels, and procedures to the list of entities which need replication.
+       * sem_util.ads (New_Copy_Tree): Add new formal Scopes_In_EWA_OK. Update
+       the comment on usage.
+
+2018-07-17  Arnaud Charlet  <charlet@adacore.com>
+
+       * doc/gnat_ugn/about_this_guide.rst,
+       doc/gnat_ugn/gnat_and_program_execution.rst: Remove references to gcov.
+       * gnat_ugn.texi: Regenerate.
+
+2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * contracts.adb (Analyze_Contracts): Add specialized processing for
+       package instantiation contracts.
+       (Analyze_Package_Contract): Remove the verification of a missing
+       Part_Of indicator.
+       (Analyze_Package_Instantiation_Contract): New routine.
+       * contracts.ads (Analyze_Package_Contract): Update the comment on
+       usage.
+       * sem_prag.adb (Check_Missing_Part_Of): Ensure that the entity of the
+       instance is being examined when trying to determine whether a package
+       instantiation needs a Part_Of indicator.
+
+2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * einfo.adb, exp_ch7.adb, exp_ch9.adb, exp_unst.adb, inline.adb,
+       sem.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_eval.adb,
+       sem_util.adb: Minor reformatting.
+
+2018-07-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * frontend.adb: Only unnest subprograms if no previous errors were
+        detected.
+
+2018-07-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Handle loops that
+       contain blocks in the elaboration code for a package body. Create the
+       elaboration subprogram wrapper only if there is a subprogram
+       declaration in a block or loop.
+
+2018-07-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch4.adb (Expand_Set_Membership): Use New_Copy_Tree to perform a
+       deep copy of the left operand when building each conjuct of the
+       expanded membership operation, to avoid sharing nodes between them.
+       This sharing interferes with the unnesting machinery and is generally
+       undesirable.
+
+2018-07-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_unst.adb (Visit_Node): Handle 'Address references that are
+       calls.
+
+2018-07-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_unst.adb (Visit_Node): Handle the semantic of Storage_Pool field
+       in relevant nodes: Allocate, Free, and return statements.
+
+2018-07-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch12.adb (Analyze_Package_Instantiation): Handle properly an
+       instance that carries an aspect Default_Storage_Pool that overrides a
+       default storage pool that applies to the generic unit. The aspect in
+       the generic unit was removed before copying it in the instance, rather
+       than removing it from the copy of the aspects that are appended to the
+       aspects in the instance.
+
+2018-07-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * einfo.adb (Set_Is_Uplevel_Referenced_Entity): Flag can appear on
+       loop parameters.
+       * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Handle subprogram
+       bodies.
+       * exp_ch9.adb (Reset_Scopes_To): Set the scopes of entities local to an
+       entry body to be the corresponding generated subprogram, for correct
+       analysis of uplevel references.
+       * exp_unst.adb (Visit_Node): Handle properly binary and unary operators
+       Ignore pragmas, fix component associations.
+       (Register_Subprograms): Subprograms in synchronized types must be
+       treated as reachable.
+
+2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_util.adb (Check_No_Hidden_State): Ignore internally-generated
+       states and variables.
+
+2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sinfo.ads, sinfo.adb (Withed_Body): Remove.
+       (Set_Withed_Body): Remove.
+
+2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem.adb (Walk_Library_Items): Skip units with configuration pragmas
+       when printing debug info.
+
+2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem.adb (Walk_Library_Items): Reuse local constant.
+       (Is_Subunit_Of_Main): Turn condition to positive and flip the
+       IF-THEN-ELSE branches; avoid potentially ineffective assignment to the
+       Lib variable.
+
+2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem.adb (Walk_Library_Items): Deconstruct dead code.
+
+2018-07-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch4.adb (Expand_N_Op_Xor): Use common routine
+       Expand_Nonbinary_Modular_Op.  Needed for unnesting.
+
+2018-07-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Inherit_Predicate_Flags): A non-discrete type may have a
+       static predicate (for example True) but has no
+       static_discrete_predicate.
+
+2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * exp_attr.adb (Build_Record_VS_Func): Handle corner cases dealing with
+       class-wide types and record extensions.
+
+2018-07-16  Justin Squirek  <squirek@adacore.com>
+
+       * sem_eval.adb (Eval_Integer_Literal): Add exception for avoiding
+       checks on expanded literals within if and case expressions.
+
+2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * libgnat/s-wchwts.adb (Wide_String_To_String): Use the appropriate
+       longest sequence factor. Code clean up.
+       (Wide_Wide_String_To_String): Use the appropriate longest sequence
+       factor.  Code clean up.
+
+2018-07-16  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Report an error
+       on Bit_Order when defined for a record extension.
+
+2018-07-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/s-objrea.ads: Minor code clean up.
+
+2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Process_Discriminants): Adjust reference to the SPARM RM
+       rule.
+
+2018-07-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * adaint.c (__gnat_set_file_time_name): Code clean up.
+
+2018-07-16  Javier Miranda  <miranda@adacore.com>
+
+       * inline.adb (Build_Body_To_Inline): Minor code reorganization that
+       ensures that calls to function Has_Single_Return() pass a decorated
+       tree.
+       (Has_Single_Return.Check_Return): Peform checks on entities (instead on
+       relying on their characters).
+
 2018-07-16  Javier Miranda  <miranda@adacore.com>
 
        * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Code cleanup. Required