]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/ada/ChangeLog
[Ada] Efficiency improvement in bounded ordered containers
[thirdparty/gcc.git] / gcc / ada / ChangeLog
index 2b0f272e44d1c849eb3fccf3d719e86588bf1612..f8f43c00441c2913b77ec35b15aefef12ea00cc0 100644 (file)
@@ -1,3 +1,818 @@
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * libgnat/a-cborma.adb, libgnat/a-cborse.adb (Clear): Repeatedly
+       call Delete. This avoids clearing the free list, which
+       substantially speeds up future Delete operations.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Component_Order_Check): New procedure to check
+       for out-of-order clauses.
+       * warnsw.ads, warnsw.adb: New -gnatw_r switch.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Document new switch.
+       * gnat_ugn.texi: Regenerate.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Object_Size): Give an error for zero. It really
+       rubs me the wrong way that we don't honor "for T'Object_Size use
+       0;", but it's not important enough to fix. In any case, if we're
+       not going to obey the clause, we should give an error.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * errout.adb (Error_Msg_Internal): Set Warn_Err in case of
+       Is_Style_Msg.
+       * erroutc.adb (Output_Msg_Text): Do Warnings_Treated_As_Errors
+       processing and [warning-as-error] modification for style
+       messages.  Clean up code, simplify, remove unnecessary block
+       statement, add renaming of table entry.
+       * erroutc.ads (Warning_Treated_As_Error): Fix comment: no such
+       thing as Set_Warning_As_Error.
+       * opt.ads: Clean up comments and move related declarations near
+       each other.
+       * par-prag.adb: Process Warning_As_Error. This is necessary
+       because many style warning happen during parsing.
+       * sem_prag.adb: Use new Acquire_Warning_Match_String.
+       * sem_util.ads, sem_util.adb (Acquire_Warning_Match_String): New
+       function shared by par-prag.adb and sem_prag.adb. Replaces the
+       procedure in sem_prag.adb. Avoid use of global variables.
+       * stringt.ads, stringt.adb (To_String): New function to convert
+       String_Id to String.
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Document the
+       new feature.
+       * gnat_rm.texi: Regenerate.
+
+2019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * lib.ads: Add with clause for GNAT.HTable.
+       Add pragma Inline for Is_Loaded and alphabetize the list.
+       (Unit_Name_Table_Size): New constant.
+       (Unit_Name_Header_Num): New subtype.
+       (Unit_Name_Hash): New function declaration.
+       (Unit_Names): New simple hash table.
+       (Init_Unit_Name): New procedure declaration.
+       * lib.adb (Set_Unit_Name): Unregister the old name in the table,
+       if any, and then register the new name.
+       (Init_Unit_Name): New procedure.
+       (Is_Loaded): Reimplement using a lookup in the names table.
+       (Remove_Unit): Unregister the name.
+       (Unit_Name_Hash): New function.
+       * lib-load.adb (Create_Dummy_Package_Unit): Call Init_Unit_Name.
+       (Load_Unit): Use a lookup in the names table to find out whether
+       the unit has already been loaded.  Call Init_Unit_Name and then
+       Remove_Unit if the loading has failed.
+       (Make_Child_Decl_Unit): Call Init_Unit_Name.
+       (Make_Instance_Unit): Likewise.
+       * lib-writ.adb (Ensure_System_Dependency): Likewise.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Record_Hole_Check): Initialize After_Last.
+
+2019-08-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * impunit.adb (Get_Kind_Of_Unit): Revert change for adapting
+       this routine for gnatprove.
+
+2019-08-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Document
+       requirements for Pragma Lock_Free.
+       * gnat_rm.texi: Regenerate.
+
+2019-08-20  Philippe Gil  <gil@adacore.com>
+
+       * bindgen.adb (Gen_Main): Set gnat_argc/gnat_argv to argc/argv
+       only when still uninitialized.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * libgnat/g-comlin.ads (Exit_From_Command_Line): Fix
+       documentation for GNAT.Command_Line.
+
+2019-08-20  Pierre-Marie de Rodat  <derodat@adacore.com>
+
+       PR ada/91492
+       * gcc-interface/lang.opt (-fdump-scos): Add missing dot at the
+       end of the documentation.
+
+2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * gcc-interface/misc.c (default_pass_by_ref): Update call to
+       pass_by_reference.
+
+2019-08-19  Bob Duff  <duff@adacore.com>
+
+       * doc/gnat_rm/implementation_advice.rst: Fix documentation for
+       stream oriented attributes.
+       * gnat_rm.texi: Regenerate.
+
+2019-08-19  Gary Dismukes  <dismukes@adacore.com>
+
+       * einfo.ads (E_Function, E_Procedure): Update comments to
+       reflect that Renamed_Entity is also used for nongeneric
+       subprograms.
+
+2019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_prag.adb (Is_Before_First_Decl): Deal with rewritten
+       pragmas.
+
+2019-08-19  Bob Duff  <duff@adacore.com>
+
+       * sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning
+       on formal parameters of dispatching operations.
+
+2019-08-19  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_res.adb (Resolve_Call): A call to an expression function
+       freezes when expander is active, unless the call appears within
+       the body of another expression function,
+
+2019-08-19  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * libgnat/s-os_lib.ads, libgnat/s-os_lib.adb (To_Ada, To_C): New
+       routines.
+
+2019-08-19  Bob Duff  <duff@adacore.com>
+
+       * exp_attr.adb (Attribute_Valid): Correct the handling of
+       private types where the full type is modular. System.Address is
+       an example. Otherwise, we convert uncheckedly to a signed type,
+       so we get an incorrect range 0 .. -1, for which all values will
+       fail.  The 'Valid attribute is illegal for such types, but we
+       generate such illegal attribute_references for 'Valid_Scalars,
+       and we generate 'Valid_Scalars when the -gnateV switch is used.
+       Rename Btyp --> PBtyp to avoid hiding the outer Btyp, which was
+       confusing.
+       * libgnat/a-except.adb: Set the Exception_Raised component.
+       Otherwise, we have incorrect reads of invalid data.
+
+2019-08-19  Pierre-Marie de Rodat  <derodat@adacore.com>
+
+       * libgnat/a-cgaaso.ads, libgnat/a-cgarso.ads,
+       libgnat/a-cogeso.ads, libgnat/a-contai.ads,
+       libgnat/a-locale.ads: Import documentation from the RM.
+
+2019-08-19  Jerome Guitton  <guitton@adacore.com>
+
+       * Makefile.rtl (system.o): New target to add generation of
+       target properties.
+       * gcc-interface/Makefile.in (install-gnatlib): Install
+       ada_target_properties.
+
+2019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * inline.adb (Add_Inlined_Body): Do not special-case instances
+       that are compilation units.
+       (Add_Pending_Instantiation): Likewise.
+       (Instantiate_Body): Skip instantiations that are compilation
+       units and have already been performed.
+       * sem_ch12.adb (Needs_Body_Instantiated): Do not special-case
+       instances that are compilation units.
+       (Load_Parent_Of_Generic): Be prepared for parent that is a
+       compilation unit but whose instantiation node has not been
+       replaced.
+
+2019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * inline.adb (Initialize, Lock): Deal with
+       Called_Pending_Instantiations.
+
+2019-08-19  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb (Check_Synchronized_Overriding): Complete
+       predicate that applies legality check in 9.4 (11.9/2): if an
+       inherited subprogram is implemented by a protected procedure or
+       entry, its first paarameter must be out, in_out or
+       access_to_varible.
+
+2019-08-19  Javier Miranda  <miranda@adacore.com>
+
+       PR ada/65696
+       * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims):
+       Adding formal to specify how many predefined primitives are
+       inherited from the parent type.
+       * exp_disp.adb (Number_Of_Predefined_Prims): New subprogram.
+       (Make_Secondary_DT): Compute the number of predefined primitives
+       of all tagged types (including tagged types not defined at
+       library level).  Previously we unconditionally relied on the
+       Max_Predef_Prims constant value when building the dispatch
+       tables of tagged types not defined at library level (thus
+       consuming more memory for their dispatch tables than required).
+       (Make_DT): Compute the number of predefined primitives that must
+       be inherited from their parent type when building the dispatch
+       tables of tagged types not defined at library level. Previously
+       we unconditionally relied on the Max_Predef_Prims constant value
+       when building the dispatch tables of tagged types not defined at
+       library level (thus copying more data than required from the
+       parent type).
+
+2019-08-19  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Record_Hole_Check): Procedure to check for holes
+       that incudes processing type extensions. A type extension is
+       processed by first calling Record_Hole_Check recursively on the
+       parent type to compute the bit number after the last component
+       of the parent.
+
+2019-08-19  Gary Dismukes  <dismukes@adacore.com>
+
+       * checks.adb (Length_Mismatch_Info_Message): New function in
+       Selected_Length_Checks to return a message indicating the
+       element counts for the mismatched lengths for a failed
+       compile-time length check.
+       (Plural_Or_Singular_Ending): Support function in
+       Length_Mismatch_Info_Message to return either "" or "s", for
+       concatenating to the end of words.
+       (Selected_Length_Checks): Pass the result of
+       Length_Mismatch_Info_Message as an extra warning message to
+       Compile_Time_Constraint_Error to indicate the mismatched lengths
+       for a failed compile-time length check.
+       * sem_util.ads (Compile_Time_Constraint_Error): Add an optional
+       message formal (Extra_Msg), defaulted to the empty string.
+       * sem_util.adb (Compile_Time_Constraint_Error): Output an extra
+       message following the main warning message (when Extra_Msg is
+       not the empty string).
+
+2019-08-19  Patrick Bernardi  <bernardi@adacore.com>
+
+       * socket.c: Removed the redefinition of getaddrinfo, getnameinfo
+       and freeaddrinfo to internal VxWorks kernel calls because they
+       are, well, internal kernel calls and cannot be called from RTPs.
+       VxWorks provides the necessary components to call these routines
+       directly.
+
+2019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_dist.adb (Is_Generic_Actual_Subtype): New predicate.
+       (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
+       Use it instead of Is_Generic_Actual_Type flag to detect subtypes
+       representing generic actual types.
+
+2019-08-19  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_warn.adb (Check_References, Generic_Body_Formal): When a
+       formal parameter of a generic subprogram is not referenced in
+       the body, place the corresponding warning on the corresponding
+       entity in the specification of the generic body, as is done for
+       non-generic subprograms.
+
+2019-08-19  Bob Duff  <duff@adacore.com>
+
+       * errout.ads (Size_Too_Small_Message): New constant.
+       * errout.adb, freeze.adb, sem_ch13.adb: Use it.
+
+2019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_dist.adb (Build_Package_Stubs): Do not specifically visit
+       the declarations of an N_Subprogram_Instantiation node.
+
+2019-08-19  Bob Duff  <duff@adacore.com>
+
+       * doc/gnat_ugn/gnat_utility_programs.rst: Document missing
+       metrics switches.
+
+2019-08-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch12.adb (Get_Unit_Instantiation_Node): Simplify Nkind_In
+       membership test.
+       * sem.adb (Depends_On_Main): Whitespace cleanup; only assign a
+       local variable if needed.
+
+2019-08-19  Claire Dross  <dross@adacore.com>
+
+       * sem_spark.ads, sem_spark.adb (Is_Pledge_Function): New
+       parameter of the generic. Function used to decide whether a
+       function is a pledge function.
+       (Check_Not_Borrowed): Disable check inside the second parameter
+       of a pledge function for the path borrowed by the first
+       parameter. Also disable checks for entities inside a Global
+       contract.
+
+2019-08-19  Joffrey Huguet  <huguet@adacore.com>
+
+       * libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads,
+       libgnat/a-cfinve.ads, libgnat/a-cforma.ads,
+       libgnat/a-cofove.ads, libgnat/a-cofuma.ads,
+       libgnat/a-cofuve.ads: Add formal function parameter "=" (L, R :
+       Element_Type) to the generic packages.
+
+2019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * opt.ads: Clean up left-overs of earlier implementation in
+       comment:
+
+2019-08-19  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Derived_Enumeration_Type): Do no freeze anonymous
+       base type if the bounds in the derived type declaration are
+       literals of the type.
+
+2019-08-19  Yannick Moy  <moy@adacore.com>
+
+       * sem_res.adb (Resolve_Call): Check non-aliasing rules before
+       GNATprove inlining.
+
+2019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * inline.adb (Add_Inlined_Body): Do not add pending
+       instantiations.
+       * sem_ch12.adb (Needs_Body_Instantiated): New predicate.
+       (Analyze_Package_Instantiation): Use it to decide whether to add
+       a pending instantiation for the body of the package.
+
+2019-08-19  Olivier Hainque  <hainque@adacore.com>
+
+       * gcc-interface/trans.c (Acc_Loop_to_gnu): Return the openacc
+       BIND_EXPR node we have constructed on purpose.  Remove unused
+       variable.
+
+2019-08-19  Pierre-Marie de Rodat  <derodat@adacore.com>
+
+       * gcc-interface/lang.opt (fdump-scos): Define.
+       * gcc-interface/misc.c (gnat_handle_option): Handle
+       OPT_fdump_scos.
+
+2019-08-14  Joffrey Huguet  <huguet@adacore.com>
+
+       * libgnat/a-cofuba.ads: Add a Length attribute to type
+       Container. Add a type Array_Base which replaces the previous
+       Elements attribute of Container.
+       (Content_Init): New subprogram. It is used to initialize the
+       Base attribute of Container.
+       * libgnat/a-cofuba.adb (Resize): New subprogram. It is used to
+       resize the underlying array of a container if necessary.
+       (=, <=, Find, Get, Intersection, Length, Num_Overlaps, Set,
+       Union): Update to match changes in type declarations.
+       (Add): Modify body to damp the time and space cost in a specific
+       case.
+       (Content_Init): New subprogram. It is used to initialize the
+       Base attribute of Container.
+       (Remove): Modify body to damp the time and space cost in a
+       specific case.
+
+2019-08-14  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Get_Alignment_Value): Return 1 for Alignment 0,
+       and do not give an error.
+       * doc/gnat_rm/representation_clauses_and_pragmas.rst: Update the
+       corresponding documentation.
+       * gnat_rm.texi: Regenerate.
+
+2019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * inline.adb (Add_Pending_Instantiation): Fix off-by-one error
+       in the comparison against the maximum number of instantiations.
+
+2019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * inline.adb (Add_Pending_Instantiation): Use greater-or-equal
+       in the comparison against the maximum number of instantiations.
+
+2019-08-14  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_aux.adb (Next_Rep_Item): If a node in the rep chain
+       involves a Ghost aspect it may have been replaced by a null
+       statement; use the original node to find next Rep_Item.
+       * repinfo.adb (List_Entities): Do not list an Ignored
+       Ghost_Entity, for which information may have been deleted.
+
+2019-08-14  Bob Duff  <duff@adacore.com>
+
+       * sem_prag.ads, sem_prag.adb
+       (Process_Compile_Time_Warning_Or_Error): In parameterless
+       version, improve detection of whether we are in a generic unit
+       to cover the case of an instance within a generic unit.
+       (Process_Compile_Time_Warning_Or_Error): Rename the
+       two-parameter version to be
+       Validate_Compile_Time_Warning_Or_Error, and do not export it.
+       Issue a warning if the condition is not known at compile time.
+       The key point is that the warning must be given only for pragmas
+       deferred to the back end, because the back end discovers
+       additional values that are known at compile time.  Previous
+       changes in this ticket have enabled this by deferring to the
+       back end without checking for special cases such as 'Size.
+       (Validate_Compile_Time_Warning_Or_Error): Rename to be
+       Defer_Compile_Time_Warning_Error_To_BE.
+       * warnsw.ads, warnsw.adb (Warn_On_Unknown_Compile_Time_Warning):
+       Add new switches -gnatw_c and -gnatw_C to control the above
+       warning.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Document new switches.
+       * gnat_ugn.texi: Regenerate.
+
+2019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch12.adb (Might_Inline_Subp): Rework comment and restrict
+       the shortcut based on Is_Inlined to the back-end inlining case.
+
+2019-08-14  Bob Duff  <duff@adacore.com>
+
+       * inline.adb (Check_And_Split_Unconstrained_Function): Ignore
+       protected functions to get rid of spurious error. The
+       transformation done by this procedure triggers legality errors
+       in the generated code in this case.
+
+2019-08-14  Bob Duff  <duff@adacore.com>
+
+       * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Defer
+       processing to the back end in all cases where the pragma's
+       condition is not known at compile time during the front end
+       (except in generics), as opposed to detecting 'Size attributes
+       and the like. This ensures that we take advantage of whatever
+       can be compile-time known after running the back end, as opposed
+       to having the front end guess what the back end can do.  Remove
+       a little duplicated code at the call site.
+       * gnat1drv.adb (Post_Compilation_Validation_Checks): Unlock the
+       Elists while in Validate_Compile_Time_Warning_Errors, because it
+       does analysis and name resolution, which sometimes involves
+       adding Elists.
+
+2019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo.ads (Is_Called): Document new usage on E_Package
+       entities.
+       * einfo.adb (Is_Called): Accept E_Package entities.
+       (Set_Is_Called): Likewise.
+       * exp_ch6.adb (Expand_Call_Helper): Move code dealing with
+       instances for back-end inlining to Add_Inlined_Body.
+       * inline.ads: Remove with clauses for Alloc and Table.
+       (Pending_Instantiations): Move to...
+       * inline.adb: Add with clauses for Alloc, Uintp, Table and
+       GNAT.HTable.
+       (Backend_Instances): New variable.
+       (Pending_Instantiations): ...here.
+       (Called_Pending_Instantiations): New table.
+       (Node_Table_Size): New constant.
+       (Node_Header_Num): New subtype.
+       (Node_Hash): New function.
+       (To_Pending_Instantiations): New hash table.
+       (Add_Inlined_Body): Bail out early for subprograms in the main
+       unit or subunit.  Likewise if the Is_Called flag is set.  If the
+       subprogram is an instance, invoke Add_Inlined_Instance.  Call
+       Set_Is_Called earlier.  If the subrogram is within an instance,
+       invoke Add_Inlined_Instance.  Also deal with the case where the
+       call itself is within an instance.
+       (Add_Inlined_Instance): New procedure.
+       (Add_Inlined_Subprogram): Remove conditions always fulfilled.
+       (Add_Pending_Instantiation): Move the defence against ludicruous
+       number of instantiations to here. When back-end inlining is
+       enabled, associate an instantiation with its index in table and
+       mark a few selected kinds of instantiations as always needed.
+       (Initialize): Set Backend_Instances to No_Elist.
+       (Instantiate_Body): New procedure doing the work extracted
+       from...
+       (Instantiate_Bodies): ...here.  When back-end inlining is
+       enabled, loop over Called_Pending_Instantiations instead of
+       Pending_Instantiations.
+       (Is_Nested): Minor tweak.
+       (List_Inlining_Info): Also list the contents of
+       Backend_Instances.
+       * sem_ch12.adb (Might_Inline_Subp): Return early if Is_Inlined
+       is set and otherwise set it before returning true.
+       (Analyze_Package_Instantiation): Remove the defence against
+       ludicruous number of instantiations.  Invoke
+       Remove_Dead_Instance instead of doing the removal manually if
+       there is a guaranteed ABE.
+
+2019-08-14  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch3.adb (Predef_Spec_Or_Body): For an equality operation
+       of an interface type, create an expression function (that
+       returns False) rather than declaring an abstract function.
+       * freeze.adb (Check_Inherited_Conditions): Set Needs_Wrapper to
+       False unconditionally at the start of the loop creating wrappers
+       for inherited operations.
+
+2019-08-14  Bob Duff  <duff@adacore.com>
+
+       * table.adb: Assert that the table is not locked when increasing
+       Last, even if it doesn't cause reallocation.  In other words,
+       assert that on operations that MIGHT cause reallocation.
+       * table.ads: Fix comment accordingly.
+
+2019-08-14  Arnaud Charlet  <charlet@adacore.com>
+
+       * doc/gnat_ugn/gnat_and_program_execution.rst: Remove
+       documentation of gnatelim.
+
+2019-08-14  Bob Duff  <duff@adacore.com>
+
+       * sem_prag.adb (Validate_Compile_Time_Warning_Error): Attach the
+       warning to the Sloc of the first pragma argument, rather than to
+       the pragma itself. This is to make pragmas processed after the
+       back end use the same Sloc as pragmas processed earlier, in the
+       front end. There's no reason for this discrepancy, and it
+       hinders further work on this ticket.
+
+2019-08-14  Bob Duff  <duff@adacore.com>
+
+       * sem.ads (Inside_A_Generic): Remove the ??? comment.
+
+2019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * inline.ads (Pending_Descriptor): Delete.
+       * inline.adb (Initialize): Do not initialize it.
+       * sem_ch12.adb (Delay_Descriptors): Delete.
+       (Analyze_Package_Instantiation): Call
+       Set_Delay_Subprogram_Descriptors instead of Delay_Descriptors
+       throughout.
+
+2019-08-14  Bob Duff  <duff@adacore.com>
+
+       * exp_aggr.adb (Init_Hidden_Discriminants): Avoid processing the
+       wrong discriminant, which could be of the wrong type.
+
+2019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset
+       the Is_Generic_Instance flag previously set on the package
+       generated for the instantiation of a generic subprogram.
+
+2019-08-14  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch4.adb (Expand_N_Quantified_Expression): Freeze
+       explicitly the type of the loop parameter.
+
+2019-08-14  Javier Miranda  <miranda@adacore.com>
+
+       * sem_util.adb (New_Copy_Tree.Copy_Node_With_Replacement):
+       Update the Chars attribute of identifiers.
+
+2019-08-14  Yannick Moy  <moy@adacore.com>
+
+       * sem_spark.adb, sem_spark.ads (Is_Legal): New function exposed
+       for use in GNATprove, to test legality rules not related to
+       permissions.
+       (Check_Declaration_Legality): Extract the part of
+       Check_Declaration that checks rules not related to permissions.
+       (Check_Declaration): Call the new Check_Declaration_Legality.
+       (Check_Type_Legality): Rename of Check_Type. Introduce
+       parameters to force or not checking, and update a flag detecting
+       illegalities.
+       (Check_Node): Ignore attribute references in statement position.
+
+2019-08-14  Yannick Moy  <moy@adacore.com>
+
+       * sem_spark.adb (Check_Old_Loop_Entry): New procedure to check
+       correct use of Old  and Loop_Entry.
+       (Check_Node): Check subprogram contracts.
+       (Check_Pragma): Check Loop_Variant.
+       (Check_Safe_Pointers): Apply checking to library-level
+       subprogram  declarations as well, in order to check their
+       contract.
+
+2019-08-14  Yannick Moy  <moy@adacore.com>
+
+       * sem_spark.adb (Is_Subpath_Expression): Take into account
+       conversion and qualification.
+
+2019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch7.adb (Install_Private_Declarations)
+       <Swap_Private_Dependents>: Do not rely solely on the
+       Is_Child_Unit flag on the unit to recurse.
+       (Uninstall_Declarations) <Swap_Private_Dependents>: New
+       function.  Use it to recurse on the private dependent entities
+       for child units.
+
+2019-08-14  Javier Miranda  <miranda@adacore.com>
+
+       * exp_aggr.adb (Is_CCG_Supported_Aggregate): Return False for
+       arrays with bounds not known at compile time.
+
+2019-08-14  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_util.adb (New_Copy_Tree, Visit_Entity): A quantified
+       expression includes the implicit declaration of the loop
+       parameter. When a quantified expression is copied during
+       expansion, for example when building the precondition code from
+       the generated pragma, a new loop parameter must be created for
+       the new tree, to prevent duplicate declarations for the same
+       symbol.
+
+2019-08-14  Yannick Moy  <moy@adacore.com>
+
+       * sem_disp.adb (Check_Dispatching_Operation): Update assertion
+       for the separate declarations created in GNATprove mode.
+       * sem_disp.ads (Is_Overriding_Subprogram): Update comment.
+       * sem_elab.adb (SPARK_Processor): Fix test for checking of
+       overriding primitives.
+
+2019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * inline.adb (Add_Inlined_Body): Tweak comments.
+       (List_Inlining_Info): Also list information about non-main
+       units.
+
+2019-08-14  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch4.adb (Analyze_Selected_Component): In the case where
+       the prefix is of a concurrent type, and the selected entity
+       matching the selector is the first private declaration of the
+       type (such as the first local variable in a task's body), set
+       Is_Private_Op.
+
+2019-08-14  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.adb (Is_Generic_Actual_Subprogram): Replace repeated
+       calls to Ekind with Ekind_In.
+
+2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR middle-end/91421
+       * gcc-interface/trans.c (gigi): Call set_decl_buillt_in_function.
+       (Call_to_gnu): Use DECL_FE_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
+
+2019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * ali.ads (Linker_Option_Record): Remove Original_Pos component.
+       * ali.adb (Scan_ALI): Do not set it.
+
+2019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch3.adb (Build_Derived_Concurrent_Type): Add a couple of
+       local variables and use them.  When the derived type fully
+       constrains the parent type, rewrite it as a subtype of an
+       implicit (unconstrained) derived type instead of the other way
+       around.
+       (Copy_And_Build): Deal with concurrent types and use predicates.
+       (Build_Derived_Private_Type): Build the full derivation if
+       needed for concurrent types too.
+       (Build_Derived_Record_Type): Add marker comment.
+       (Complete_Private_Subtype): Use predicates.
+
+2019-08-13  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Check_Generic_Ancestor): New subprogram,
+       aubsidiary to Build_Derived_Record_Type. to enforce the rule
+       that a type extension declared in a generic body cznnot have an
+       ancestor that is a generic formal (RM 3.9.1 (4/2)). The rule
+       applies to all ancestors of the type, including interface
+       progenitors.
+
+2019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch3.adb (Build_Underlying_Full_View): Delete.
+       (Complete_Private_Subtype): Do not set the full view on the
+       private subtype here.  If the full base is itself derived from
+       private, do not re-derive the parent type but instead constrain
+       an existing underlying full view.
+       (Prepare_Private_Subtype_Completion): Do not get to the
+       underlying full view, if any.  Set the full view on the private
+       subtype here.
+       (Process_Full_View): Likewise.
+       * sem_ch12.adb (Check_Generic_Actuals): Also set
+       Is_Generic_Actual_Type on the full view if the type of the
+       actual is private.
+       (Restore_Private_Views): Also reset Is_Generic_Actual_Type on
+       the full view if the type of the actual is private.
+       * sem_eval.adb (Subtypes_Statically_Match): Remove bypass for
+       generic actual types.
+
+2019-08-13  Javier Miranda  <miranda@adacore.com>
+
+       * sem_res.adb (Resolve_Selected_Component): When the type of the
+       component is an access to a class-wide type and the type of the
+       context is an access to a tagged type the relevant type is that
+       of the component (since in such case we may need to generate
+       implicit type conversions or dispatching calls).
+
+2019-08-13  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_aggr.adb (Aggr_Assignment_OK_For_Backend):  Preanalyze
+       expression, rather do a full analysis, to prevent unwanted
+       removal of side effects which mask the intent of the expression.
+
+2019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * impunit.adb (Non_Imp_File_Names_95): Add
+       GNAT.Branch_Prediction.
+
+2019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch6.adb: Remove with and use clauses for Sem_Ch12.
+       (Expand_Call_Helper): Swap the back-end inlining case and the
+       special front-end expansion case.  In back-end inlining mode, do
+       not invoke Add_Inlined_Body unless the call may be inlined.
+       * inline.ads (Add_Pending_Instantiation): New function moved
+       from...
+       * inline.adb (Add_Inlined_Body): Simplify comment.  Turn test on
+       the enclosing unit into assertion.
+       (Add_Pending_Instantiation): New function moved from...
+       * sem_ch12.ads (Add_Pending_Instantiation): ...here.
+       * sem_ch12.adb (Add_Pending_Instantiation): ...here.
+
+2019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem.adb (Do_Analyze): Recompute Style_Check_Max_Line_Length
+       after restoring Style_Max_Line_Length.
+
+2019-08-13  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch13.adb (Check_Iterator_Functions): Protect against
+       cascaded errors.
+
+2019-08-13  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch8.adb (Analyze_Subprogram_Renaming): Do no suppress mode
+       conformance checks on child unit instance that is a compilation
+       unit.
+
+2019-08-13  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_dbug.adb (Fully_Qualify_Name): Add full name qualification
+       for the E_Exception case.
+
+2019-08-13  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_aggr.adb (Aggr_Size_OK): Compute the aggregate size using
+       universal arithmetic, to avoid situations where the size
+       computation overflows.
+
+2019-08-13  Justin Squirek  <squirek@adacore.com>
+
+       * repinfo.adb (List_Scalar_Storage_Order): Modify conditionals
+       for displaying ordering to always be triggered when -gnatR4 is
+       in effect.
+
+2019-08-13  Justin Squirek  <squirek@adacore.com>
+
+       * aspects.adb, aspects.ads: Register new aspect.
+       * par-prag.adb (Prag): Register new pragma
+       * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
+       for new aspect similar to Aspect_Max_Entry_Queue_Length.
+       * sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new
+       pragma and set it to use the same processing as
+       Pragma_Max_Queue_Length.
+       * snames.ads-tmpl: Move definition of
+       Name_Max_Entry_Queue_Length so that it can be processed as a
+       pragma in addition to a restriction and add an entry for the
+       pragma itself.
+
+2019-08-13  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch4.adb (Analyze_Allocator): Do not insert subtype
+       declaration for allocator inside a spec expression.
+
+2019-08-13  Yannick Moy  <moy@adacore.com>
+
+       * sem_res.adb (Resolve_Call): Do not inline calls inside record
+       types.
+
+2019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch4.adb (Analyze_One_Call): Remove bypass for type
+       mismatch in nested instantiations.
+       * sem_ch8.adb (Find_Nearer_Entity): New function.
+       (Find_Renamed_Entity): Use it to disambiguate the candidates for
+       the renaming generated for an instantiation when it is
+       ambiguous.
+
+2019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gnat1drv.adb (Adjust_Global_Switches): Do not set
+       Back_End_Inlining in ASIS mode either.
+
+2019-08-13  Olivier Hainque  <hainque@adacore.com>
+
+       * libgnat/s-win32.ads: Define size_t and fix the MapViewOfFile
+       binding to use it instead of DWORD for the dwNumberOfBytesToMap
+       argument.
+       * libgnat/g-sercom__mingw.adb (Read): State which definition of
+       size_t to fetch in call to Last_Index.
+
+2019-08-13  Arnaud Charlet  <charlet@adacore.com>
+
+       * gcc-interface/Make-lang.in: Remove unused TRACE variable. Pass
+       LN_S to relevant gnatlib targets.
+       * gcc-interface/Makefile.in: Systematically pass LN_S to
+       relevant gnatlib targets.
+
+2019-08-13  Yannick Moy  <moy@adacore.com>
+
+       * sem_dim.adb (Analyze_Dimension,
+       Analyze_Dimension_Array_Aggregate, Analyze_Dimension_Call,
+       Analyze_Dimension_Extension_Or_Record_Aggregate): Return
+       immediately when inside an inlined body.
+       * sem_res.adb (Resolve_Call): Remove special checking now done
+       inside Analyze_Dimension_Call.
+
+2019-08-13  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch4.adb (Expand_N_Allocator): Add condition to detect
+       library-level object declarations
+
+2019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst
+       (-gnateT): Document Double_Float_Alignment parameter and fix
+       description of Double_Scalar_Alignment parameter.
+       * gnat_ugn.texi: Regenerate.
+
 2019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
 
        * exp_ch6.adb (Expand_Call_Helper): If back-end inlining is