+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
+ to avoid generating an ill-formed tree that confuses gnatprove causing
+ it to blowup.
+
+2018-07-16 Yannick Moy <moy@adacore.com>
+
+ * inline.adb (Has_Single_Return): Rewrap comment.
+
+2018-07-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * einfo.ads: Minor tweak in comment.
+
+2018-07-16 Javier Miranda <miranda@adacore.com>
+
+ * sem_ch4.adb (Analyze_Membership_Op): Code cleanup.
+
+2018-07-16 Javier Miranda <miranda@adacore.com>
+
+ * exp_attr.adb (Expand_N_Attribute_Reference ['Count]): Do not
+ transform 'Count into a function call if the current scope has been
+ eliminated.
+
+2018-07-16 Javier Miranda <miranda@adacore.com>
+
+ * sem_util.ads, sem_util.adb (Has_Prefix): Move this function to the
+ public part of this package.
+
+2018-07-16 Yannick Moy <moy@adacore.com>
+
+ * sem_res.adb (Resolve_Call): Do not inline calls inside
+ compiler-generated functions translated as predicates in GNATprove.
+
+2018-07-16 Gary Dismukes <dismukes@adacore.com>
+
+ * exp_ch4.adb (Expand_N_Allocator): Test for Storage_Pool being RTE in
+ addition to the existing test for no Storage_Pool as a condition
+ enabling generation of the call to Check_Standard_Allocator when the
+ restriction No_Standard_Allocators_After_Elaboration is active.
+ * libgnat/s-elaall.ads (Check_Standard_Allocator): Correct comment to
+ say that Storage_Error will be raised (rather than Program_Error).
+ * libgnat/s-elaall.adb (Check_Standard_Allocator): Raise Storage_Error
+ rather than Program_Error when Elaboration_In_Progress is False.
+
+2018-07-16 Gary Dismukes <dismukes@adacore.com>
+
+ * sem_eval.adb: Fix spelling for compile-time-known.
+
+2018-07-16 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_eval.adb (Compile_Time_Known_Value): Add a guard which prevents
+ the compiler from entering infinite recursion when trying to determine
+ whether a deferred constant has a compile time known value, and the
+ initialization expression of the constant is a reference to the
+ constant itself.
+
+2018-07-16 Nicolas Roche <roche@adacore.com>
+
+ * libgnat/a-strunb.adb, libgnat/a-strunb__shared.adb: Adjust growth
+ factor from 1/32 to 1/2 for Unbounded_String.
+
+2018-07-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/lang.opt (funsigned-char): New option.
+ * gcc-interface/misc.c (gnat_handle_option): Accept it.
+ * gcc-interface/utils.c (finish_character_type): Tweak comment.
+
+2018-07-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity): Add GNAT_DECL local
+ variable and use it throughout.
+ <E_Variable>: If the nominal subtype of the object is unconstrained,
+ compute the Ada size separately and put in on the padding type if the
+ size is not fixed.
+ <E_Record_Type>: Minor tweak.
+ * gcc-interface/misc.c (gnat_type_max_size): Rename max_size_unit
+ into max_size_unit throughout.
+
+2018-07-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/gigi.h (add_decl_expr): Adjust prototype.
+ * gcc-interface/decl.c (gnat_to_gnu_entity): Remove useless test.
+ * gcc-interface/trans.c (add_stmt_with_node): Remove exceptions.
+ (add_decl_expr): Change type of second parameter and rename it.
+ (renaming_from_instantiation_p): New function moved from...
+ (set_expr_location_from_node): Test for exceptions here and add one
+ for actual subtypes built for unconstrained composite actuals.
+ * gcc-interface/utils.c (renaming_from_instantiation_p): ...here.
+
+2018-07-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (lvalue_required_p): Remove ALIASED parameter
+ and adjust recursive calls.
+ (Identifier_to_gnu): Adjust calls to lvalue_required_p.
+ (gnat_to_gnu): Likewise.
+
+2018-07-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_param): Minor tweak.
+ (gnat_to_gnu_subprog_type): New pure_flag local variable. Set it for
+ a pure Ada function with a by-ref In parameter. Propagate it onto the
+ function type by means of the TYPE_QUAL_RESTRICT flag.
+ * gcc-interface/utils.c (finish_subprog_decl): Set DECL_PURE_P if the
+ function type has the TYPE_QUAL_RESTRICT flag set.
+
+2018-07-06 Jim Wilson <jimw@sifive.com>
+
+ * Makefile.rtl: Add riscv*-linux* support.
+ * libgnarl/s-linux__riscv.ads: New.
+ * libgnat/system-linux-riscv.ads: New.
+
+ * 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-06 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * libgnat/system-rtems.ads (Frontend_Exceptions): Set to False.
+ (ZCX_By_Default): Set to True.
+
2018-07-02 Martin Liska <mliska@suse.cz>
* gnatvsn.ads: Bump Library_Version to 9.
2018-05-21 Jerome Lambourg <lambourg@adacore.com>
* gcc-interface/Makefile.in: Add g-soliop__qnx.ads to the runtime build
- for QNX.
+ for QNX.
2018-05-21 Hristian Kirtchev <kirtchev@adacore.com>