]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/ada/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ada / ChangeLog
index 3b6735aa1e727c2c587f5592675ced98a686f913..d131abf5a0682a15d43989bbacdcaa1fc7a143b9 100644 (file)
+2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/gigi.h: Remove ^L characters throughout.
+       * gcc-interface/decl.c: Likewise.
+       * gcc-interface/utils.c: Likewise.
+       * gcc-interface/utils2.c: Likewise.
+       * gcc-interface/trans.c (gnat_to_gnu) <N_Allocator>: Do not explicitly
+       go to the base type for the Has_Constrained_Partial_View flag.
+
+2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (build_binary_op_trapv): Convert operands
+       to the result type before doing generic overflow checking.
+
+2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (can_be_lower_p): Remove.
+       (Regular_Loop_to_gnu): Add ENTRY_COND unconditionally if
+       BOTTOM_COND is non-zero.
+
+2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: In case
+       the constant is not being defined, get the expression in type
+       annotation mode only if its type is elementary.
+
+2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (gnat_to_gnu) <N_Op_Shift>: Also convert
+       GNU_MAX_SHIFT if the type of the operation has been changed.
+       * gcc-interface/utils.c (can_materialize_object_renaming_p): Add
+       pair of missing parentheses.
+
+2020-11-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/Makefile.in: Force target_cpu to powerpc if the
+       nominal target is powerpc64-suse-linux.
+
+2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * gcc-interface/misc.c (gnat_printable_name): Change
+       DECL_IS_BUILTIN -> DECL_IS_UNDECLARED_BUILTIN.
+
+2020-10-28  Alexandre Oliva  <oliva@adacore.com>
+
+       PR ada/97504
+       * Makefile.rtl (LIBGNAT_TARGET_PAIRS> <riscv*-*-*>: Use wraplf
+       version of Aux_Long_Long_Float.
+
+2020-10-27  Doug Rupp  <rupp@adacore.com>
+
+       * Makefile.rtl: Add vx7r2cert spec file to ARM, PowerPC and x86
+       targets.
+       * vxworks7-cert-rtp-link.spec: New spec file.
+
+2020-10-27  Arnaud Charlet  <charlet@adacore.com>
+
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-spogwa object.
+       * libgnat/g-spogwa.adb: Fix style errors.
+
+2020-10-27  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_Array_Aggregate): Dedicated
+       routine for array aggregates; mostly reuses existing code, but
+       calls itself recursively for multi-dimensional array aggregates.
+       (Expand_SPARK_N_Aggregate): Call Expand_SPARK_Array_Aggregate to
+       do the actual expansion, starting from the first index of the
+       array type.
+
+2020-10-27  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_aggr.adb (Resolve_Iterated_Component_Association): new
+       internal subprogram Remove_References, to reset semantic
+       information on each reference to the index variable of the
+       association, so that Collect_Aggregate_Bounds can work properly
+       on multidimensional arrays with nested associations, and
+       subsequent expansion into loops can verify that dimensions of
+       each subaggregate are compatible.
+
+2020-10-27  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * exp_prag.adb (Append_Copies): Handle N_Parameter_Associations.
+
+2020-10-27  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * ada_get_targ.adb (Digits_From_Size): Delete.
+       (Width_From_Size): Likewise.
+       * get_targ.adb (Digits_From_Size): Likewise.
+       (Width_From_Size): Likewise.
+       * get_targ.ads (Digits_From_Size): Likewise.
+       (Width_From_Size): Likewise.
+       * ttypes.ads: Remove with clause for Get_Targ.
+       (Standard_Short_Short_Integer_Width): Delete.
+       (Standard_Short_Integer_Width): Likewise.
+       (Standard_Integer_Width): Likewise.
+       (Standard_Long_Integer_Width): Likewise.
+       (Standard_Long_Long_Integer_Width): Likewise.
+       (Standard_Long_Long_Long_Integer_Width): Likewise.
+       (Standard_Short_Float_Digits): Likewise.
+       (Standard_Float_Digits): Likewise.
+       (Standard_Long_Float_Digits): Likewise.
+       (Standard_Long_Long_Float_Digits): Likewise.
+       * gnat1drv.adb (Adjust_Global_Switches): Adjust.
+
+2020-10-27  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch6.adb, freeze.adb, gnat1drv.adb, opt.ads, sem_ch6.adb
+       (Transform_Function_Array): New flag, split from Modify_Tree_For_C.
+       * exp_unst.adb: Minor reformatting.
+
+2020-10-27  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * libgnat/g-socpol.adb (Wait): Do not exit from loop on EINTR
+       error and timeout is over.
+
+2020-10-26  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_aggr.adb (Build_Array_Aggr_Code): If the aggregate
+       includes an Others_Choice in an association that is an
+       Iterated_Component_Association, generate a proper loop for it.
+
+2020-10-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/a-tifiio.adb: Add missing sign in documentation.
+       * libgnat/s-imgrea.ads: Minor fixes in commentary.
+
+2020-10-26  Pat Rogers  <rogers@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Include
+       "Jorvik" in pragma Profile description.
+       * gnat_rm.texi: Regenerate.
+
+2020-10-26  Bob Duff  <duff@adacore.com>
+
+       * sem_attr.adb (Check_Image_Type): Remove "|", so the compiler
+       will not crash.
+       * errout.ads: Improve comment. This has nothing to do with
+       -gnatQ.
+
+2020-10-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/a-tifiio.adb: Minor editions to documentation.
+
+2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
+
+       * contracts.adb (Causes_Contract_Freezing): Extend condition to
+       match the one in Analyze_Subprogram_Body_Helper. This routine is
+       used both as an assertion at the very start of
+       Freeze_Previous_Contracts and to detect previous declaration for
+       which Freeze_Previous_Contracts has been executed.
+
+2020-10-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/a-tifiio.adb: Move around documentaton paragraph.
+
+2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
+
+       * inline.adb (Establish_Actual_Mapping_For_Inlined_Call): Add
+       guard for a call to Set_Last_Assignment with the same condition
+       as the assertion in that routine and explain why this guard
+       fails in GNATprove mode.
+
+2020-10-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_characteristics.rst: Adjust
+       the entries of 3.5.9(8) and 3.5.9(10).
+       * gnat_rm.texi: Regenerate.
+
+2020-10-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/a-tifiio.adb: Change the range of supported Small
+       values.
+       (E0, E1, E2): Adjust factors.
+       (Exact): Return false if the Small does not fit in 64 bits.
+
+2020-10-26  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * libgnat/g-socket.adb (Wait_On_Socket): Boolean parameter
+       For_Read changed to Event parameter of type
+       GNAT.Sockets.Poll.Wait_Event_Set.  Implementation is simplified
+       and based on call to GNAT.Sockets.Poll.Wait now.
+
+2020-10-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/a-tifiio.adb: Minor editions to documentation.
+
+2020-10-26  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch12.adb (Restore_Private_Views): Do not lose the
+       information provided by Is_Generic_Actual_Type in GNATprove
+       mode.
+
+2020-10-26  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning
+       on formal parameters of all dispatching operations.
+
+2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb (Resolve_Delta_Array_Aggregate): Fix typos in
+       error message.
+
+2020-10-26  Olivier Hainque  <hainque@adacore.com>
+
+       * libgnat/s-dwalin.adb (Symbolic_Traceback): Always emit the hex
+       address at the beginning of an entry if suppression is not
+       requested. Consistently output a "???" for the subprogram name
+       when it is unknown.
+
+2020-10-26  Doug Rupp  <rupp@adacore.com>
+
+       * s-oscons-tmplt.c (_nfds_t): Use sizeof (unsigned long int).
+
+2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
+
+       * par-ch4.adb (P_Iterated_Component_Association): Move code for
+       iterated_element_association to
+       Build_Iterated_Element_Association.
+
+2020-10-26  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch12.adb (Needs_Body_Instantiated): In GNATprove mode, do
+       not instantiate bodies outside of the main unit.
+
+2020-10-26  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_aggr.adb (Resolve_Delta_Array_Aggregate): For an
+       association that is an iterated component association, attach
+       the copy of the expression to the tree prior to analysis, in
+       order to preserve its context. This is needed when verifying
+       static semantic rules that depend on context, for example that a
+       use of 'Old appears only within a postcondition.
+
+2020-10-26  Bob Duff  <duff@adacore.com>
+
+       * doc/gnat_ugn/gnat_utility_programs.rst: Document that
+       --no-comments-fill is now the default.
+
+2020-10-26  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_aggr.adb (Resolve_Extension_Aggregate): When testing for
+       an aggregate that is illegal due to having an ancestor type that
+       has unknown discriminants, add an "or else" condition testing
+       whether the aggregate type has unknown discriminants and that
+       Partial_View_Has_Unknown_Discr is also set on the ancestor type.
+       Extend the comment, including adding ??? about a possible
+       simpler test.
+
+2020-10-26  Bob Duff  <duff@adacore.com>
+
+       * libgnat/a-cihama.adb, libgnat/a-cohama.adb,
+       libgnat/a-cohase.adb (Delete): Set Position.Position, and
+       assert.
+
+2020-10-26  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch8.adb (Find_Direct_Name.Undefined): Handle known unit
+       names with 3 selectors.
+
+2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Add missing call
+       to Enter_Name, just like it is called for
+       iterated_component_association in Expand_SPARK_N_Aggregate.
+
+2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Reuse local
+       constant Expr and the Choice_List routine.
+       (Expand_SPARK_N_Aggregate): Reuse local constant Expr.
+
+2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
+
+       * par-ch4.adb (P_Iterated_Component_Association): Fix typos in
+       comments.
+
+2020-10-26  Arnaud Charlet  <charlet@adacore.com>
+
+       * par-ch6.adb (P_Formal_Part): Ada 2020 supports scanning
+       aspects on formal parameters.
+       * doc/gnat_rm/implementation_defined_aspects.rst (Aspect
+       Unreferenced): Update documentation.
+       * gnat_rm.texi: Regenerate.
+
+2020-10-26  Ed Schonberg  <schonberg@adacore.com>
+
+       * freeze.adb (Freeze_Type_Refs): When an entity in an expression
+       function is a type, freeze the entity and not just its type,
+       which would be incomplete when the type is derived and/or
+       tagged.
+
+2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_attr.adb (Expand_Update_Attribute): Handle
+       subtype_indication just like in Expand_Delta_Array_Aggregate.
+
+2020-10-25  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * Makefile.rtl: Add GNATRTL_128BIT_PAIRS/OBJS for 64bit
+       PowerPC Darwin cases.
+
+2020-10-23  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * adaint.c: On Darwin platforms, define st_atim to
+       st_atimespec. Likwise st_mtim to st_mtimespec.
+
+2020-10-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.rtl (EXTRA_GNATRTL_NONTASKING_OBJS) [IA64/Linux]: Fix typo.
+
+2020-10-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.rtl (EXTRA_GNATRTL_NONTASKING_OBJS) [IA64/Linux]: Fix typo.
+
+2020-10-23  Alexandre Oliva  <oliva@adacore.com>
+
+       PR ada/97504
+       * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Select wraplf version
+       of Aux_Long_Long_Float for s390 and remaining sparc and
+       powerpc targets.
+
+2020-10-23  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * Makefile.rtl (GNATRTL_SOCKETS_OBJS): New object
+       g-socpol$(objext) New source files noted: g-socpol.adb,
+       g-socpol.ads, g-socpol__dummy.adb, g-socpol__dummy.ads,
+       g-sopowa.adb, g-sopowa__posix.adb, g-sopowa__mingw.adb,
+       g-spogwa.adb, g-spogwa.ads.
+       * impunit.adb (Non_Imp_File_Names_95): New base filename
+       g-socpol in "GNAT Library Units" section for GNAT.Sockets.Poll
+       unit.
+       * libgnat/g-socket.ads, libgnat/g-socket.adb:
+       (Raise_Socket_Error): Moved from body to private part of
+       specification to use in GNAT.Sockets.Poll.
+       * libgnat/g-socpol.ads, libgnat/g-socpol.adb: Main unit of the
+       implementation.
+       * libgnat/g-socpol__dummy.ads, libgnat/g-socpol__dummy.adb:
+       Empty unit for the systems without sockets support.
+       * libgnat/g-spogwa.ads, libgnat/g-spogwa.adb: Generic unit
+       implementing sockets poll on top of select system call.
+       * libgnat/g-sopowa.adb (Wait): Separate implementation for
+       operation systems with poll system call support.
+       * libgnat/g-sopowa__posix.adb (Wait): Separate implementation
+       for POSIX select system call.
+       * libgnat/g-sopowa__mingw.adb (Wait): Separate implementation
+       for Windows select system call.
+       * gsocket.h (_WIN32_WINNT): Increase to 0x0600 for winsock2.h to
+       allow WSAPoll related definitions.
+       * s-oscons-tmplt.c: Fix comment next to #endif for
+       #if defined (__linux__) || defined (__ANDROID__) line.  Include
+       <poll.h> for all except VxWorks and Windows.
+       (SIZEOF_nfds_t): New definition.
+       (SIZEOF_fd_type): New definition.
+       (SIZEOF_pollfd_events): New definition.
+       (POLLIN, POLLPRI, POLLOUT, POLLERR, POLLHUP, POLLNVAL): New
+       definitions for VxWorks to be able to emulate poll on top of
+       select in it.  Define POLLPRI as zero on Windows as it is not
+       supported there.
+       (Poll_Linkname): New definition, because the poll system call
+       has different name in Windows and POSIX.
+
+2020-10-23  Justin Squirek  <squirek@adacore.com>
+
+       * checks.adb (Apply_Accessibility_Check): Skip checks against
+       the extra accessibility of a function result when in Ada 2005
+       mode or earlier.
+       * exp_ch3.adb (Build_Initialization_Call): Modify accessibility
+       level calls to use Accessibility_Level.
+       (Expand_N_Object_Declaration): Modify accessibility level calls
+       to use Accessibility_Level.
+       * exp_ch4.adb (Expand_Allocator_Expression): Add static check
+       for anonymous access discriminants. Remove unneeded propagation
+       of accessibility actual.
+       (Expand_N_In): Modify accessibility level calls to use
+       Accessibility_Level.
+       (Expand_N_Type_Conversion): Modify accessibility level calls to
+       use Accessibility_Level.
+       * exp_ch5.adb (Expand_N_Assignment_Statement): Modify
+       accessibility level calls to use Accessibility_Level.
+       * exp_ch6.adb (Expand_Call_Helper): Rewrite accessibility
+       calculation for the extra accessibility of result actual in
+       function calls, and modify accessibility level calls to use
+       Accessibility_Level.
+       (Check_Against_Result_Level): Removed.
+       * exp_ch9.adb (Expand_N_Requeue_Statement): Add dynamic
+       accessibility check for requeues
+       * sem_attr.adb (Resolve_Attribute): Modify accessibility level
+       calls to use Accessibility_Level.
+       * sem_ch13.adb (Associate_Storage_Pool): Modify accessibility
+       level calls to use Accessibility_Level.
+       * sem_ch4.adb (Analyze_Call): Add static check for explicitly
+       aliased formals in function calls within return statements.
+       * sem_ch6.adb (Check_Return_Construct_Accessibility): Rewrite
+       routine to account for non-aggregate return objects.
+       (Generate_Minimum_Accessibility): Created.
+       (Analyze_Call): Modify accessibility level calls to use
+       Accessibility_Level.
+       (Analyze_Subprogram_Body_Helper): Add generation of minimum
+       accessibility for the extra accessibility of the function
+       result.
+       * sem_ch9.adb (Analyze_Requeue): Modify accessibility level
+       calls to use Accessibility_Level.
+       * sem_res.adb: (Check_Aliased_Parameters): Modify accessibility
+       level calls to use Accessibility_Level.
+       (Valid_Conversion): Modify accessibility level calls to use
+       Accessibility_Level.
+       * sem_util.adb, sem_util.ads (Accessibility_Level_Helper):
+       Renamed to Accessibility_Level, add detection for functions in
+       prefix notation, and add cases where to return zero when
+       specified. Modified to take new, more descriptive, parameters.
+       (Accessibility_Level): Created.
+       (Function_Call_Level): Removed.
+       (Function_Call_Or_Allocator_Level): Created to centralize the
+       calculation accessibility levels for function calls and
+       allocators.
+       (Static_Accessibility_Level): Removed.
+       (Dynamic_Accessibility_Level): Removed.
+       (Get_Dynamic_Accessibility): Renamed from Get_Accessibility.
+       (In_Return_Value): Created to determine if a given expression
+       contributes to the current function's return value.
+       (Is_Master): Created.
+       (Is_Explicitly_Aliased): Created
+
+2020-10-23  Bob Duff  <duff@adacore.com>
+
+       * doc/gnat_ugn/gnat_utility_programs.rst: Document
+       --no-comments-fill.
+
+2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
+
+       * contracts.adb (Analyze_Entry_Or_Subprogram_Contract,
+       Analyze_Subprogram_Body_Stub_Contract): Fix missing references
+       to Subprogram_Variant where similar references to Contract_Cases
+       are present.
+       * sem_prag.adb (Analyze_Contract_Case, Analyze_Variant): Check
+       that aggregate parameter has no expressions.
+       (Analyze_Pragma): Replace Contract_Cases with Subprogram_Variant
+       in a copy-pasted comment.
+
+2020-10-23  Philippe Gil  <gil@adacore.com>
+
+       * libgnat/g-socket.ads: Fix comment typo.
+
+2020-10-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst (VFA): Remove uage
+       restrictions in conjunction with Atomic and Aliased.
+       * gnat_rm.texi: Regenerate.
+       * aspects.ads (Aspect_Id): Add Aspect_Full_Access_Only.
+       (Is_Representation_Aspect): Likewise.
+       (Aspect_Names): Likewise.
+       (Aspect_Delay): Likewise.
+       * einfo.ads (Is_Atomic_Or_VFA): Rename into...
+       (Is_Full_Access): ...this.
+       (Is_Volatile_Full_Access): Document new usage for Full_Access_Only.
+       * einfo.adb (Is_Atomic_Or_VFA): Rename into...
+       (Is_Full_Access): ...this.
+       * freeze.ads (Is_Atomic_VFA_Aggregate): Rename into...
+       (Is_Full_Access_Aggregate): ...this.
+       * freeze.adb (Is_Atomic_VFA_Aggregate): Rename into...
+       (Is_Full_Access_Aggregate): ...this.  Adjust to above renaming.
+       (Freeze_Array_Type): Likewise.
+       (Freeze_Entity): Likewise.
+       * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Likewise.
+       (Expand_Record_Aggregate): Likewise.
+       * exp_ch4.adb (Expand_N_Op_Eq): Likewise.
+       * exp_ch5.adb (Expand_Assign_Array): Likewise.
+       * exp_ch8.adb (Evaluation_Required): Likewise.
+       * layout.adb (Layout_Type): Likewise.
+       (Set_Composite_Alignment): Likewise.
+       * sem_aux.ads (Has_Rep_Item): Delete.
+       * sem_aux.adb (Has_Rep_Item): Likewise.
+       * sem_attr.adb (Resolve_Attribute) <Attribute_Access>: Implement
+       new legality rules in C.6(12).
+       * sem_ch12.adb (Instantiate_Object): Likewise.
+       * sem_res.adb (Resolve_Actuals): Likewise.
+       * sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Deal with aspect
+       Full_Access_Only.
+       (Check_False_Aspect_For_Derived_Type): Likewise.
+       (Make_Pragma_From_Boolean_Aspect): Test for the presence of Expr.
+       Deal with aspect Full_Access_Only.
+       (Analyze_Aspects_At_Freeze_Point): Likewise.
+       (Analyze_One_Aspect): Do not set Delay_Required to true even for
+       Always_Delay boolean aspects if they have no expression.  Force
+       Delay_Required to true for aspect Full_Access_Only in all cases.
+       Reject aspect Full_Access_Only if not in Ada 2020 mode.
+       (Check_Aspect_At_End_Of_Declarations): Deal with empty expression.
+       (Check_Aspect_At_Freeze_Point): Likewise.
+       (Rep_Item_Entity): Delete.
+       (Inherit_Aspects_At_Freeze_Point): Align handling for Bit_Order
+       with that for Scalar_Storage_Order.
+       * sem_prag.adb (Check_Atomic_VFA): Delete.
+       (Check_VFA_Conflicts): Likewise.
+       (Check_Full_Access_Only): New procedure.
+       (Process_Atomic_Independent_Shared_Volatile): Call to implement
+       the new legality checks in C.6(8/2) and mark the entity last.
+       (Analyze_Pragma) <Pragma_Atomic_Components>: Remove obsolete check.
+       * sem_util.ads (Is_Atomic_Or_VFA_Object): Rename into...
+       (Is_Full_Access_Object): ...this.
+       (Is_Subcomponent_Of_Atomic_Object): Rename into...
+       (Is_Subcomponent_Of_Full_Access_Object): ...this.
+       * sem_util.adb (Inherit_Rep_Item_Chain): Use Present_In_Rep_Item.
+       (Is_Atomic_Or_VFA_Object): Rename into...
+       (Is_Full_Access_Object): ...this.
+       (Is_Subcomponent_Of_Atomic_Object): Rename into...
+       (Is_Subcomponent_Of_Full_Access_Object): ...this and adjust.
+       * snames.ads-tmpl (Name_Full_Access_Only): New name of aspect.
+       * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust for renaming.
+       (promote_object_alignment): Likewise.
+       (gnat_to_gnu_field): Likewise.  Rename local variable and use
+       specific qualifier in error message for Volatile_Full_Access.
+       * gcc-interface/trans.c (lvalue_required_p): Likewise.
+
+2020-10-23  Arnaud Charlet  <charlet@adacore.com>
+
+       * lib-writ.ads, lib-writ.adb (Write_ALI): No longer read
+       existing ALI files in -gnatc mode.
+
+2020-10-23  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/g-socthi__mingw.adb (C_Select): Fix logic in code and
+       make it explicit that we are checking against null values before
+       dereferencing them.
+
+2020-10-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_imgv.adb (Expand_Image_Attribute): For an enumeration type
+       subject to pragma Discard_Names, convert 'Pos to Long_Long_Integer
+       before applying 'Img to the result.
+
+2020-10-23  Ed Schonberg  <schonberg@adacore.com>
+
+       * freeze.adb (Freeze_Type_Refs): Add guard on freezing of the
+       designated type of an access type appearing in the expression,
+       when expression includes an explicit dereference whose prefix
+       includes a function call.
+
+2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Handle
+       subtype_indication; do not apply range checks for ranges; add
+       comment saying that others_choices is not allowed.
+
+2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_N_Aggregate,
+       Expand_SPARK_Delta_Or_Update): Expand
+       Iterated_Component_Association occurring within delta
+       aggregates.
+       (Expand_SPARK): Apply SPARK-specific expansion to ordinary
+       aggregates.
+
+2020-10-23  Johannes Kanig  <kanig@adacore.com>
+
+       * exp_util.adb, exp_util.ads
+       (Containing_Package_With_Ext_Axioms,
+       Has_Annotate_Pragma_For_External_Axiomatizations): Removed.
+       * sem_ch8.adb (Analyze_Subprogram_Renaming): Removed code
+       related to external axiomatizations.
+       * einfo.ads
+       (Is_Generic_Actual_Subprogram): Removed comment about external
+       axiomatization.
+
+2020-10-23  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_aggr.adb (Resolve_Aggregate): Do not call
+       Resolve_Container_Aggregate if compilation version is earlier
+       than Ada_2020.
+
+2020-10-23  Arnaud Charlet  <charlet@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Improve
+       documentation of pragma Abort_Defer.
+       * gnat_rm.texi: Regenerate.
+
+2020-10-23  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * exp_prag.adb (Etype_Or_Dim3): New function.
+       (Expand_Pragma_Cuda_Execute): Use Etype_Or_Dim3 for temporary
+       decls.
+
+2020-10-23  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/s-fileio.adb (Open): Fix setting of Tempfile.
+
+2020-10-23  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * exp_prag.adb (Get_Launch_Kernel_Arg_Type): Renamed to
+       Get_Nth_Arg_Type and made more generic.
+       (Build_Dim3_Declaration): Now builds a CUDA.Internal.Dim3
+       instead of a CUDA.Vector_Types.Dim3.
+       (Build_Shared_Memory_Declaration): Now infers needed type from
+       Launch_Kernel instead of using a hard-coded type.
+       (Expand_Pragma_CUDA_Execute): Build additional temporaries to
+       store Grids and Blocks.
+       * rtsfind.ads: Move Launch_Kernel from public to internal
+       package.
+
+2020-10-23  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch4.adb (Complete_Object_Operation): Only mark entities
+       referenced if we are compiling the extended main unit.
+       * sem_attr.adb (Analyze_Attribute [Attribute_Tag]): Record a
+       reference on the type and its scope.
+
+2020-10-23  Ed Schonberg  <schonberg@adacore.com>
+
+       * freeze.adb (Is_Uninitialized_Aggregate): Recognize an array
+       aggregate with box initialization, scalar components, and no
+       component default values.
+       (Freeze_Entity, Check_Address_Clause): Call it, and simplify
+       freeze code for entity by removing useless assignment.
+
+2020-10-23  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch3.adb (Check_Abstract_Overriding): Subprogram renamings
+       cannot be overridden.
+       (Derive_Subprogram): Enable setting attribute
+       Requires_Overriding on functions with controlling access results
+       of record extensions with a null extension part require
+       overriding (AI95-00391/06).
+
+2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb (Resolve_Delta_Array_Aggregate): Push scope of
+       the implicit loop before entering name of the index parameter,
+       not after; enter name no matter if the identifier has been
+       decorated before.
+
+2020-10-23  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch4.adb (Analyze_Call): In the case where the call is not
+       overloaded, check for a call to an abstract nondispatching
+       operation and flag an error.
+
+2020-10-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gnat1drv.adb (Adjust_Global_Switches): Rewrite again code enabling
+       or disabling the support for 128-bit integer types.
+
+2020-10-23  Arnaud Charlet  <charlet@adacore.com>
+
+       * alloc.ads, aspects.adb, aspects.ads, atree.adb, atree.ads,
+       casing.adb, casing.ads, csets.adb, csets.ads, debug.adb, debug.ads,
+       einfo.adb, einfo.ads, elists.adb, elists.ads, fname.adb, fname.ads,
+       gnatvsn.adb, gnatvsn.ads, hostparm.ads, indepsw-aix.adb,
+       indepsw-darwin.adb, indepsw-gnu.adb, indepsw.adb, indepsw.ads,
+       krunch.adb, krunch.ads, lib-list.adb, lib-sort.adb, lib.adb, lib.ads,
+       namet-sp.adb, namet-sp.ads, namet.adb, namet.ads, nlists.adb,
+       nlists.ads, opt.adb, opt.ads, output.adb, output.ads, rident.ads,
+       scans.adb, scans.ads, scil_ll.adb, scil_ll.ads, sem_aux.ads,
+       sem_aux.adb, sfn_scan.adb, sinfo.adb, sinfo.ads, sinput.adb,
+       sinput.ads, snames.adb-tmpl, snames.ads-tmpl, stand.ads,
+       stringt.adb, stringt.ads, table.adb, table.ads, types.adb,
+       types.ads, uintp.adb, uintp.ads, uname.adb, uname.ads,
+       urealp.adb, urealp.ads, vast.adb, vast.ads, widechar.adb,
+       widechar.ads: Update header.
+
+2020-10-23  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/a-nbnbin.adb (From_String): Take advantage of
+       Long_Long_Long_Integer.
+       * libgnat/s-genbig.ads, libgnat/s-genbig.adb (To_Bignum): New
+       function taking a Long_Long_Long_Integer.
+
+2020-10-23  Justin Squirek  <squirek@adacore.com>
+
+       * sem_util.adb (Accessibility_Call_Helper): In the selected
+       component case, test if a prefix is a function call and whether
+       the subprogram call is not being used in its entirety and use
+       the Innermost_Master_Scope_Depth in that case.
+       (Innermost_Master_Scope_Depth): Test against the node_par
+       instead of its identifier to avoid misattributing unnamed blocks
+       as not being from source.
+       (Function_Call_Level): Add calculation for whether a subprogram
+       call is initializing an object in its entirety.
+       (Subprogram_Call_Level): Renamed to Function_Call_Level.
+
+2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Check_External_Properties): Rewrite to match the
+       SPARK RM description.
+
+2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
+
+       * contracts.adb (Check_Type_Or_Object_External_Properties):
+       Cleanup.
+
+2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Set the
+       output parameter Expr_Val to the (implicit) pragma argument even
+       when returning early.
+
+2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.rtl (GNATRTL_128BIT_PAIRS): Add i-cexten.ads.
+       * debug.adb (d.H): Document new usage.
+       * doc/gnat_rm/representation_clauses_and_pragmas.rst (Size Clauses):
+       Document new limit on 64-bit platforms.
+       (Component_Size Clauses): Likewise.
+       (Pragma Pack for Arrays): Likewise.
+       (Pragma Pack for Records): Likewise.
+       (Record Representation Clauses): Likewise.
+       * gnat_rm.texi: Regenerate.
+       * gnat1drv.adb (Adjust_Global_Switches): Rewrite code enabling or
+       disabling the support for 128-bit integer types.
+       * switch-c.adb (Scan_Front_End_Switches): Do not deal with e128.
+       * usage.adb (Write_Switch_Char): Do not print -gnate128 switch.
+       * libgnat/i-cexten__128.ads: New file.
+
+2020-10-22  Javier Miranda  <miranda@adacore.com>
+
+       * einfo.ads (Has_Limited_View): New synthesized attribute.
+       * einfo.adb (Has_Limited_View): New synthesized attribute.
+       (Set_Limited_View): Complete assertion.
+       * sem_ch10.ads (Is_Visible_Through_Renamings): Make this routine
+       public to invoke it from Find_Expanded_Name and avoid reporting
+       spurious errors on renamings of limited-with packages.
+       (Load_Needed_Body): Moved to have this spec alphabetically
+       ordered.
+       * sem_ch10.adb (Is_Visible_Through_Renamings): Moved to library
+       level.
+       (Is_Limited_Withed_Unit): New subprogram.
+       * sem_ch3.adb (Access_Type_Declaration): Adding protection to
+       avoid reading attribute Entity() when not available.
+       * sem_ch8.adb (Analyze_Package_Renaming): Report error on
+       renamed package not visible through context clauses.
+       (Find_Expanded_Name): Report error on renamed package not
+       visible through context clauses; handle special case where the
+       prefix is a renaming of a (now visible) shadow package.
+
+2020-10-22  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * exp_prag.adb (Get_Launch_Kernel_Arg_Type): New function.
+       (Build_Shared_Memory_Declaration): Use
+       Get_Launch_Kernel_Arg_Type.
+       (Build_Stream_Declaration): Use Get_Launch_Kernel_Arg_Type.
+       * rtsfind.ads: Remove RO_IC_Unsigned_Long_Long.
+
+2020-10-22  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/s-imenne.adb, libgnat/s-imgrea.adb: Add assertions.
+
+2020-10-22  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/s-imgrea.adb (Set_Image_Real): Update annotations.
+
+2020-10-22  Steve Baird  <baird@adacore.com>
+
+       * aspects.ads: Introduce the subtype Nonoverridable_Aspect_Id,
+       whose Static_Predicate reflects the list of nonoverridable
+       aspects given in Ada RM 13.1.1(18.7).
+       * sem_util.ads, sem_util.adb: Add two new visible subprograms,
+       Check_Inherited_Nonoverridable_Aspects and Is_Confirming. The
+       former is used to check the consistency of inherited
+       nonoverridable aspects from multiple sources. The latter
+       indicates whether two aspect specifications for a nonoverridable
+       aspect are confirming. Because of compatibility concerns in
+       compiling QGen, Is_Confirming always returns True if
+       Relaxed_RM_Semantics (i.e., -gnatd.M) is specified.
+       * sem_ch3.adb (Derived_Type_Declaration): Call new
+       Check_Inherited_Nonoverridable_Aspects procedure if interface
+       list is non-empty.
+       * sem_ch9.adb (Check_Interfaces): Call new
+       Check_Inherited_Nonoverridable_Aspects procedure if interface
+       list is non-empty.
+       * sem_ch13.adb (Analyze_Aspect_Specifications): When an explicit
+       aspect specification overrides an inherited nonoverridable
+       aspect, check that the explicit specification is confirming.
+
+2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * freeze.ads (Check_Compile_Time_Size): Adjust size limit.
+
+2020-10-22  Richard Kenner  <kenner@adacore.com>
+
+       * sprint.adb (pg, po, ps): Use {Push,Pop}_Output.
+       * treepr.adb (pl, pn): Likewise.
+
+2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/gnat_rm/implementation_advice.rst: Minor fix.
+       * gnat_rm.texi: Regenerate.
+
+2020-10-22  Steve Baird  <baird@adacore.com>
+
+       * sem_util.adb (Is_Container_Aggregate): A new local predicates
+       which indicates whether a given expression is a container
+       aggregate. The implementation of this function is incomplete; in
+       the unusual case of a record aggregate (i.e., not a container
+       aggregate) of a type whose Aggregate aspect is specified, the
+       function will incorrectly return True.
+       (Immediate_Context_Implies_Is_Potentially_Unevaluated): Improve
+       handling of aggregate components.
+       (Is_Repeatedly_Evaluated): Test for container aggregate
+       components along with existing test for array aggregate
+       components.
+
+2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_fixd.adb (Fpt_Value): Fold if-then-else with identical arms.
+
+2020-10-22  Ed Schonberg  <schonberg@adacore.com>
+
+       * par-ch4.adb (P_Iterated_Component_Association): If the
+       construct includes an iterator filter it corresponds to an
+       Iterated_Element_Association, so build the proper node for it.
+       * exp_aggr.adb (Expand_Container_Aggregate, Aggregate_Size): If
+       the component is an Iterated_Element_Association, treat it as
+       having a non-static size.
+
+2020-10-22  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * scng.adb (Scan): Check if any letter of the token is
+       uppercase.
+
+2020-10-22  Justin Squirek  <squirek@adacore.com>
+
+       * sem_util.adb (Accessibility_Level_Helper): Conversions to
+       named access types get the level associated with the named
+       access type.
+
+2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo.ads (Has_Constrained_Partial_View): Add "base type" marker.
+
+2020-10-22  Gary Dismukes  <dismukes@adacore.com>
+
+       * einfo.adb (Has_Constrained_Partial_View): Apply Base_Type to Id.
+       * sem_res.adb (Resolve_Actuals.Check_Aliased_Parameter): Remove
+       "not Is_Generic_Type" test and call
+       Object_Type_Has_Constrained_Partial_View instead of
+       Has_Constrained_Partial_View. Improve related error message to
+       say "does not statically match" instead of just "does not
+       match".
+
+2020-10-22  Steve Baird  <baird@adacore.com>
+
+       * sem_util.ads, sem_util.adb: Declare and implement a new
+       predicate, Derivation_Too_Early_To_Inherit.  This function
+       indicates whether a given derived type fails to inherit a given
+       streaming-related attribute from its parent type because the
+       declaration of the derived type precedes the corresponding
+       attribute_definition_clause of the parent.
+       * exp_tss.adb (Find_Inherited_TSS): Call
+       Derivation_Too_Early_To_Inherit instead of unconditionally
+       assuming that a parent type's streaming attribute is available
+       for inheritance by an immediate descendant type.
+       * sem_attr.adb (Stream_Attribute_Available): Call
+       Derivation_Too_Early_To_Inherit instead of unconditionally
+       assuming that a parent type's streaming attribute is available
+       for inheritance by an immediate descendant type.
+       * exp_attr.adb (Default_Streaming_Unavailable): A new predicate;
+       given a type, indicates whether predefined (as opposed to
+       user-defined) streaming operations for the type should be
+       implemented by raising Program_Error.
+       (Expand_N_Attribute_Reference): For each of the 4
+       streaming-related attributes (i.e., Read, Write, Input, Output),
+       after determining that no user-defined implementation is
+       available (including a Stream_Convert pragma), call
+       Default_Streaming_Unavailable; if that call returns True, then
+       implement the streaming operation as "raise Program_Error;".
+
+2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * checks.adb (Apply_Float_Conversion_Check): Saturate the bounds
+       of the check to those of the base type of the expression.
+
+2020-10-22  Justin Squirek  <squirek@adacore.com>
+
+       * checks.adb (Apply_Accessibility_Check): Modify condition to
+       avoid flawed optimization and use Get_Accessibility over
+       Extra_Accessibility.
+       * exp_attr.adb: Remove inclusion of Exp_Ch2.adb.
+       * exp_ch2.adb, exp_ch2.ads (Param_Entity): Moved to sem_util.
+       * exp_ch3.ads (Init_Proc_Level_Formal): New function.
+       * exp_ch3.adb (Build_Init_Procedure): Add extra accessibility
+       formal for init procs when the associated type is a limited
+       record.
+       (Build_Initialization_Call): Add condition to handle propagation
+       of the new extra accessibility paramter actual needed for init
+       procs.
+       (Init_Proc_Level_Formal): Created to fetch a the extra
+       accessibility parameter associated with init procs if one
+       exists.
+       * exp_ch4.adb (Build_Attribute_Reference): Modify static check
+       to be dynamic.
+       * exp_ch6.adb (Add_Cond_Expression_Extra_Actual): Move logic
+       used to expand conditional expressions used as actuals for
+       anonymous access formals.
+       (Expand_Call_Helper): Remove extranious accessibility
+       calculation logic.
+       * exp_util.adb: Remove inclusion of Exp_Ch2.adb.
+       * par-ch3.adb (P_Array_Type_Definition): Properly set
+       Aliased_Present on access definitions
+       * sem_attr.adb (Resolve_Attribute): Replace instances for
+       Object_Access_Level with Static_Accessibility_Level.
+       * sem_ch13.adb (Storage_Pool): Replace instances for
+       Object_Access_Level with Static_Accessibility_Level.
+       * sem_ch6.adb (Check_Return_Construct_Accessibility): Replace
+       instances for Object_Access_Level with
+       Static_Accessibility_Level.
+       * sem_ch9.adb (Analyze_Requeue): Replace instances for
+       Object_Access_Level with Static_Accessibility_Level.
+       * sem_res.adb (Check_Aliased_Parameter,
+       Check_Allocator_Discrim_Accessibility, Valid_Conversion):
+       Replace instances for Object_Access_Level with
+       Static_Accessibility_Level.
+       * sem_util.adb, sem_util.ads (Accessibility_Level_Helper):
+       Created to centralize calculation of accessibility levels.
+       (Build_Component_Subtype): Replace instances for
+       Object_Access_Level with Static_Accessibility_Level.
+       (Defining_Entity): Add extra parameter to dictate whether an
+       error is raised or empty is return in the case of an irrelevant
+       N.
+       (Dynamic_Accessibility_Level): Rewritten to use
+       Accessibility_Level_Helper.
+       (Is_View_Conversion): Check membership against Etype to capture
+       nodes like explicit dereferences which have types but are not
+       expanded names or identifers.
+       (Object_Access_LeveL): Removed.
+       (Param_Entity): Moved from sem_util.
+       (Static_Accessibility_Level): Created as a replacement to
+       Object_Access_Level, it also uses Accessibility_Level_Helper for
+       its implementation.
+       * snames.ads-tmpl: Added new name for extra accessibility
+       parameter in init procs.
+
+2020-10-22  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_prag.adb (Expand_Pragma_Contract_Cases,
+       Expand_Pragma_Loop_Variant): Reuse Append_New_To.
+       * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Fix typo.
+       (Analyze_Pre_Post_Condition): Refactor repeated calls to
+       Defining_Entity.
+
+2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_characteristics.rst: Minor
+       fixes.
+       * gnat_rm.texi: Regenerate.
+
+2020-10-22  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_warn.adb (Check_Unused_Withs): Move local variables from
+       to a nested procedure; Lunit is passed as a parameter to
+       Check_System_Aux and its type is refined from Node_Id to
+       Entity_Id; Cnode is now a constant.
+
+2020-10-22  Patrick Bernardi  <bernardi@adacore.com>
+
+       * libgnat/s-rident.ads (Profile_Info): Use a common profile
+       definition for Jorvik and GNAT Extended Ravenscar, using the
+       GNAT Extended Ravenscar definition.
+
+2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.rtl (64-bit platforms): Add GNATRTL_128BIT_PAIRS to
+       the LIBGNAT_TARGET_PAIRS list and also GNATRTL_128BIT_OBJS to
+       the EXTRA_GNATRTL_NONTASKING_OBJS list.
+
+2020-10-22  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_prag.adb (Process_Convention,
+       Process_Import_Or_Interface): Fix error message.
+
+2020-10-22  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_ch13.adb (Make_Aitem_Pragma): Turn into function. This
+       removes a side-effect on the Aitem variable.
+       (Analyze_Aspect_Specifications): Handle Suppress and Unsuppress
+       aspects differently from the Linker_Section aspect.
+       (Ceck_Aspect_At_Freeze_Point): Don't expect Suppress/Unsuppress
+       to be delayed anymore.
+
+2020-10-22  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_aggr.adb: (Resolve_Container_Aggregate): For an indexed
+       container, verify that expressions and component associations
+       are not both present.
+       * exp_aggr.adb: Code reorganization, additional comments.
+       (Expand_Container_Aggregate): Use Aggregate_Size for Iterated_
+       Component_Associations for indexed aggregates. If present, the
+       default value of the formal in the constructor function is used
+       when the size of the aggregate cannot be determined statically.
+
+2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_attr.adb (Eval_Attribute): Fix oversight for Bit_Position.
+
+2020-10-22  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_util.ads, sem_util.adb (Check_Ambiguous_Aggregate): When a
+       subprogram call is found to be ambiguous, check whether
+       ambiguity is caused by an aggregate actual.  and indicate that
+       it should carry a type qualification.
+       * sem_ch4.adb (Traverse_Hoonyms, Try_Primitive_Operation): Call
+       it.
+       * sem_res.adb (Report_Ambiguous_Argument): Call it.
+
+2020-10-22  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_warn.adb (Check_One_Unit): Avoid repeated calls by using a
+       local variable Lunit; remove local constant Eitem, which was
+       identical to Lunit.
+
+2020-10-22  Alexandre Oliva  <oliva@adacore.com>
+
+       * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <x86*-vxworks*>: Select
+       nolibm and wraplf variants like other vxworks ports.
+
+2020-10-22  Martin Liska  <mliska@suse.cz>
+
+       PR c/94722
+       * gcc-interface/utils.c (handle_no_stack_protect_attribute):
+       New.
+       (handle_stack_protect_attribute): Add error message for a
+       no_stack_protector function.
+
+2020-10-22  Alexandre Oliva  <oliva@adacore.com>
+
+       * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <lynxos178>: Rely on
+       Aux_Long_Float for all real types.
+
+2020-10-22  Alexandre Oliva  <oliva@adacore.com>
+
+       * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Use Long Float-based
+       variant of Aux_Short_Float and Aux_Float on vxworks targets.
+       * libgnat/a-nashfl__wraplf.ads: New.
+       * libgnat/a-nuaufl__wraplf.ads: New.
+
+2020-10-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <sparc*-sun-solaris>:
+       Use wraplf version of a-nallfl.
+
+2020-10-22  Alexandre Oliva  <oliva@adacore.com>
+
+       * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Use
+       a-nallfl__wraplf.ads on aarch64-* and ppc*-linux-gnu targets.
+       * libgnat/a-nallfl__wraplf.ads: New.
+
+2020-10-22  Jan Hubicka  <hubicka@ucw.cz>
+
+       * gcc-interface/trans.c: Include tree-nested.h
+       (walk_nesting_tree): Update for new nested function info.
+
+2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add a-llltio, a-lllwti,
+       a-lllzti and remove a-timoau, a-wtmoau and a-ztmoau.
+       (GNATRTL_128BIT_PAIRS): Add a-tiinio.adb, a-timoio.adb, a-wtinio.adb,
+       a-wtmoio.adb, a-ztinio.adb and a-ztmoio.adb.
+       * impunit.adb (Non_Imp_File_Names_95): Add a-llltio, a-lllwti and
+       a-lllzti.
+       * krunch.ads: Document trick for Ada.Long_Long_Long_Integer_*_IO.
+       * krunch.adb (Krunch): Add trick for Ada.Long_Long_Long_Integer_*_IO.
+       * libgnat/a-llltio.ads: Instantiate Ada.Text_IO.Integer_IO.
+       * libgnat/a-lllwti.ads: Instantiate Ada.Wide_Text_IO.Integer_IO.
+       * libgnat/a-lllzti.ads: Instantiate Ada.Wide_Wide_Text_IO.Integer_IO.
+       * libgnat/a-tigeau.ads (Load_Integer): New procedure.
+       * libgnat/a-tigeau.adb (Load_Integer): Likewise.
+       * libgnat/a-tiinau.ads, libgnat/a-tiinau.adb: Change to generic
+       package.
+       * libgnat/a-tiinio.adb: Instantiate it.
+       * libgnat/a-tiinio__128.adb: Likewise.
+       * libgnat/a-timoau.ads, libgnat/a-timoau.adb: Change to generic
+       package.
+       * libgnat/a-timoio.adb: Instantiate it.
+       * libgnat/a-timoio__128.adb: Likewise.
+       * libgnat/a-wtgeau.ads (Load_Integer): New procedure.
+       * libgnat/a-wtgeau.adb (Load_Integer): Likewise.
+       * libgnat/a-wtinau.ads, libgnat/a-wtinau.adb: Change to generic
+       package.
+       * libgnat/a-wtinio.adb: Instantiate it.
+       * libgnat/a-wtinio__128.adb: Likewise.
+       * libgnat/a-wtmoau.ads, libgnat/a-wtmoau.adb: Change to generic
+       package.
+       * libgnat/a-wtmoio.adb: Instantiate it.
+       * libgnat/a-wtmoio__128.adb: Likewise.
+       * libgnat/a-ztgeau.ads (Load_Integer): New procedure.
+       * libgnat/a-ztgeau.adb (Load_Integer): Likewise.
+       * libgnat/a-ztinau.ads, libgnat/a-ztinau.adb: Change to generic
+       package.
+       * libgnat/a-ztinio.adb: Instantiate it.
+       * libgnat/a-ztinio__128.adb: Likewise.
+       * libgnat/a-ztmoau.ads, libgnat/a-ztmoau.adb: Change to generic
+       package.
+       * libgnat/a-ztmoio.adb: Instantiate it.
+       * libgnat/a-ztmoio__128.adb: Likewise.
+
+2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch12.adb (Freeze_Subprogram_Body): Do not move the freeze
+       node of the package body enclosing the instance when its parent
+       is in the same declarative part as the freeze node of the parent.
+
+2020-10-21  Steve Baird  <baird@adacore.com>
+
+       * exp_ch6.adb (Insert_Post_Call_Actions): When a function's
+       result type requires finalization and we decide to make copy of
+       a call to the function and subsequently refer only to the copy,
+       then don't forget to finalize the original function result
+       object.
+
+2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-widint,
+       s-widthi, s-widuns, s-widuns.
+       (GNATRTL_128BIT_OBJS): Add s-imglllb, s-imgllli, s-imglllu, s-imglllw,
+       s-valllli, s-vallllu, s-widllli, s-widlllu.
+       * exp_imgv.adb (Expand_Image_Attribute): Deal with 128-bit types.
+       (Expand_Value_Attribute): Likewise.
+       (Expand_Width_Attribute): Likewise.
+       * exp_put_image.adb (Build_Elementary_Put_Image_Call): Likewise.
+       * krunch.adb (Krunch): Deal with s-img, s-val and s-wid prefixes.
+       * rtsfind.ads (RTU_Id): Add System_Img_LLLI, System_Img_LLLU,
+       System_Val_LLLI, System_Val_LLL, System_Wid_Int, System_Wid_LLLI,
+       System_Wid_LLLU, System_Wid_Uns).
+       (RE_Id): Add RE_Image_Long_Long_Long_Integer,
+       RE_Image_Long_Long_Long_Unsigned,
+       RE_Put_Image_Long_Long_Long_Integer,
+       RE_Put_Image_Long_Long_Long_Unsigned,
+       RE_Long_Long_Long_Unsigned, RE_Value_Long_Long_Long_Integer,
+       RE_Value_Long_Long_Long_Unsigned, RE_Width_Integer,
+       RE_Width_Long_Long_Long_Integer, RE_Width_Long_Long_Long_Unsigned,
+       RE_Width_Unsigned, RE_Image_Long_Long_Long_Integer,
+       RE_Image_Long_Long_Long_Unsigned, RE_Put_Image_Long_Long_Long_Integer,
+       RE_Put_Image_Long_Long_Long_Unsigned, RE_Long_Long_Long_Unsigned,
+       RE_Value_Long_Long_Long_Integer, RE_Value_Long_Long_Long_Unsigned,
+       RE_Width_Integer, RE_Width_Long_Long_Long_Integer,
+       RE_Width_Long_Long_Long_Unsigned, RE_Width_Unsigned.
+       * libgnat/s-imageb.ads, libgnat/s-imageb.adb: New generic
+       package.
+       * libgnat/s-imagei.ads, libgnat/s-imagei.adb: Likewise.
+       * libgnat/s-imageu.ads, libgnat/s-imageu.adb: Likewise.
+       * libgnat/s-imagew.ads, libgnat/s-imagew.adb: Likewise.
+       * libgnat/s-imgbiu.ads: Instantiate System.Image_B.
+       * libgnat/s-imgbiu.adb: Add pragma No_Body.
+       * libgnat/s-imgint.ads: Instantiate System.Image_I.
+       * libgnat/s-imgint.adb: Add pragma No_Body.
+       * libgnat/s-imgllb.ads: Instantiate System.Image_B.
+       * libgnat/s-imgllb.adb: Add pragma No_Body0
+       * libgnat/s-imglli.ads: Instantiate System.Image_I.
+       * libgnat/s-imglli.adb: Add pragma No_Body.
+       * libgnat/s-imglllb.ads: Instantiate System.Image_B.
+       * libgnat/s-imgllli.ads: Instantiate System.Image_I.
+       * libgnat/s-imglllu.ads: Instantiate System.Image_U.
+       * libgnat/s-imglllw.ads: Instantiate System.Image_W.
+       * libgnat/s-imgllu.ads: Instantiate System.Image_U.
+       * libgnat/s-imgllu.adb: Add pragma No_Body.
+       * libgnat/s-imgllw.ads: Instantiate System.Image_W.
+       * libgnat/s-imgllw.adb: Add pragma No_Body.
+       * libgnat/s-imgrea.adb: Remove clauses for System.Unsigned_Types.
+       * libgnat/s-imguns.ads: Instantiate System.Image_U.
+       * libgnat/s-imguns.adb: Add pragma No_Body.
+       * libgnat/s-imgwiu.ads: Instantiate System.Image_W.
+       * libgnat/s-imgwiu.adb: Add pragma No_Body.
+       * libgnat/s-putima.ads (Long_Long_Long_Unsigned): New subtype.
+       (Put_Image_Long_Long_Long_Unsigned): New procedure.
+       * libgnat/s-putima.adb (Small): Rename to Integer_Images.
+       (Large): Rename to LL_Integer_Images.
+       (LLL_Integer_Images): New instantiation.
+       (Put_Image_Long_Long_Long_Integer): New renaming.
+       (Put_Image_Long_Long_Long_Unsigned): Likewise.
+       * libgnat/s-valint.ads: Instantiate System.Value_I.
+       * libgnat/s-valint.adb: Add pragma No_Body.
+       * libgnat/s-vallli.ads: Instantiate System.Value_I.
+       * libgnat/s-vallli.adb: Add pragma No_Body.
+       * libgnat/s-valllli.ads: Instantiate System.Value_I.
+       * libgnat/s-vallllu.ads: Instantiate System.Value_U.
+       * libgnat/s-valllu.ads: Instantiate System.Value_U.
+       * libgnat/s-valllu.adb: Add pragma No_Body.
+       * libgnat/s-valuei.ads, libgnat/s-valuei.adb: New generic
+       package.
+       * libgnat/s-valueu.ads, libgnat/s-valueu.adb: Likewise.
+       * libgnat/s-valuns.ads: Instantiate System.Value_U.
+       * libgnat/s-valuns.adb: Add pragma No_Body.
+       * libgnat/s-widint.ads: Instantiate System.Width_I.
+       * libgnat/s-widlli.ads: Likewise.
+       * libgnat/s-widlli.adb: Add pragma No_Body.
+       * libgnat/s-widllli.ads: Instantiate System.Width_I.
+       * libgnat/s-widlllu.ads: Instantiate System.Width_U.
+       * libgnat/s-widllu.ads: Likewise.
+       * libgnat/s-widllu.adb: Add pragma No_Body.
+       * libgnat/s-widthi.ads, libgnat/s-widthi.adb: New generic
+       package.
+       * libgnat/s-widthu.ads, libgnat/s-widthu.adb: Likewise.
+       * libgnat/s-widuns.ads: Instantiate System.Width_U.
+
+2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * set_targ.adb (DTN): Fix oversight.
+       (Read_Target_Dependent_Values): Do not error out on missing
+       Long_Long_Long_Size entry and reuse Long_Long_Size for it.
+
+2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_aggr.adb (Gen_Loop): Analyze copy of the expression in the
+       scope of the implicit loop with name of the index parameter
+       visible.
+
+2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.rtl (GNATRTL_128BIT_PAIRS): New variable.
+       (GNATRTL_128BIT_OBJS): Likewise.
+       (Windows): In 64-bit mode, add the former to LIBGNAT_TARGET_PAIRS and
+       the latter to EXTRA_GNATRTL_NONTASKING_OBJS.
+       (x86_64/linux): Likewise, but unconditionally.
+       (GNATRTL_NONTASKING_OBJS): Add s-aridou, s-exponn, s-expont,
+       s-exponu.
+       * ada_get_targ.adb (Get_Long_Long_Long_Size): New function.
+       * checks.adb (Apply_Arithmetic_Overflow_Strict): Use Integer_Type_For
+       to find an appropriate integer type; if it does not exist and the max
+       integer size is larger than 64, use the 128-bit arithmetic routines.
+       * cstand.adb (Create_Standard): Build Standard_Long_Long_Long_Integer
+       and its base type.  Use it for Etype of Any_Integer, Any_Modular and
+       Any_Numeric.  Use its size for Build Standard_Long_Long_Long_Unsigned
+       and Universal_Integer.
+       (Print_Standard): Print Long_Long_Long_Integer.
+       * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Mod>: Adjust
+       comment.
+       * exp_ch3.adb (Simple_Init_Initialize_Scalars_Type): Deal with 128-bit
+       types.
+       * exp_ch4.adb (Expand_Array_Comparison): Likewise.
+       (Expand_N_Op_Expon): Likewise.
+       (Narrow_Large_Operation): Likewise.
+       * exp_dbug.adb (Bounds_Match_Size): Handle 128-bit size.
+       * exp_fixd.adb (Build_Double_Divide_Code): Use RE_Double_Divide64.
+       * exp_intr.adb (Expand_Binary_Operator_Call): Handle 128-bit size.
+       * exp_pakd.ads (E_Array): Extend range to 127.
+       (Bits_Id): Fill in up to 127.
+       (Get_Id): Likewise.
+       (GetU_Id): Likewise.
+       (Set_Id): Likewise.
+       (SetU_Id): Likewise.
+       * exp_pakd.adb (Revert_Storage_Order): Handle 128-bit size.
+       * exp_util.adb (Integer_Type_For): Likewise.
+       (Small_Integer_Type_For): Likewise.
+       * fname.adb (Is_Predefined_File_Name): Do not return False for names
+       larger than 12 characters if they start with "s-".
+       * freeze.adb (Adjust_Esize_For_Alignment): Change the maximum value
+       to System_Max_Integer_Size.
+       (Check_Suspicious_Modulus): Adjust comment.
+       (Freeze_Entity): Likewise.
+       * get_targ.ads (Get_Long_Long_Long_Size): New function.
+       * get_targ.adb (Get_Long_Long_Long_Size): Likewise.
+       (Width_From_Size): Deal with 128-bit size.
+       * gnat1drv.adb (Adjust_Global_Switches): Deal with 128-bit types.
+       * impunit.adb (Get_Kind_Of_File): Bump buffer size.  Accept files with
+       13 characters if they start with 's'.  Compare slice of Buffer.
+       (Not_Impl_Defined_Unit): Accept files with 13 characters if they start
+       with 's'.
+       * krunch.ads: Document length for 128-bit support units.
+       * krunch.adb (Krunch): Set length to 9 for 128-bit support units.
+       * layout.adb (Layout_Type): Use System_Max_Integer_Size as alignment
+       limit.
+       * rtsfind.ads (RTU_Id): Add System_Arith_128,
+       System_Compare_Array_Signed_128, System_Compare_Array_Unsigned_128,
+       System_Exn_LLLI, System_Exp_LLLU, System_Pack_[65..127].
+       (RE_Id): Add RE_Integer_128, RE_Unsigned_128, RE_Add_With_Ovflo_Check128
+       RE_Multiply_With_Ovflo_Check128, RE_Subtract_With_Ovflo_Check128,
+       RE_Bswap_128, RE_Compare_Array_S128, RE_Compare_Array_U128,
+       RE_Exn_Long_Long_Long_Integer, RE_Exp_Long_Long_Long_Integer,
+       RE_Exp_Long_Long_Long_Unsigned, RE_Bits_[65-127], RE_Get_[65-127],
+       RE_Set_[65-127], RE_IS_Is16, RE_IS_Iu16, RE_Integer_128 and
+       RE_Unsigned_128.  Rename RE_Add_With_Ovflo_Check, RE_Double_Divide,
+       RE_Multiply_With_Ovflo_Check, RE_Scaled_Divide and
+       RE_Subtract_With_Ovflo_Check.  Remove RE_IS_Iz1, RE_IS_Iz2, RE_IS_Iz4,
+       RE_IS_Iz8, RE_Long_Unsigned, RE_Short_Unsigned, RE_Short_Short_Unsigned
+       (RE_Unit_Table): Likewise.
+       * sem_aux.adb (Corresponding_Unsigned_Type): Deal with a size equal to
+       that of Standard_Long_Long_Long_Integer.
+       (First_Subtype): Deal with Standard_Long_Long_Long_Integer'Base.
+       * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Attribute_Size>:
+       Check the size against powers of 2 and System_Max_Integer_Size for
+       objects as well.
+       (Set_Enum_Esize): Deal with 128-bit bounds.
+       * sem_ch3.adb (Set_Modular_Size): Handle 128-bit size.
+       (Modular_Type_Declaration): Deal with 128-bit types.
+       (Signed_Integer_Type_Declaration): Support derivation from
+       Standard_Long_Long_Long_Integer.
+       * sem_ch4.adb (Analyze_Mod): Handle 128-bit modulus.
+       * sem_intr.adb: Add with and use clauses for Ttypes.
+       (Check_Shift): Handle 128-bit size and modulus.
+       * sem_prag.adb (Analyze_Pragma) <Pragma_Initialize_Scalars>: Deal
+       with Signed_128 and Unsigned_128.
+       (Analyze_Integer_Value): Handle 128-bit size.
+       * sem_util.ads (Addressable): Adjust description.
+       * sem_util.adb (Addressable): Return true for 128 if the system
+       supports 128 bits.
+       (Set_Invalid_Binder_Values): Deal with Signed_128 and Unsigned_128.
+       * set_targ.ads (Long_Long_Long_Size): New variable.
+       * set_targ.adb (S_Long_Long_Long_Size): New constant.
+       (DTN): Add entry for S_Long_Long_Long_Size.
+       (DTV): Add entry for Long_Long_Long_Size.
+       (Set_Targ): Set Long_Long_Long_Size.
+       * snames.ads-tmpl (Name_Max_Integer_Size): New attribute name.
+       (Name_Signed_128): New scalar name.
+       (Name_Unsigned_128): Likewise.
+       (Scalar_Id): Adjust.
+       (Integer_Scalar_Id): Likewise.
+       (Attribute_Id): Add Attribute_Max_Integer_Size.
+       * stand.ads (Standard_Entity_Type): Add S_Long_Long_Long_Integer.
+       (Standard_Long_Long_Long_Integer): New renaming.
+       (Universal_Integer): Adjust description.
+       (Standard_Long_Long_Long_Unsigned): New variable.
+       * switch-c.adb (Scan_Front_End_Switches): Deal with -gnate128.
+       * ttypes.ads (Standard_Long_Long_Long_Integer_Size): New variable.
+       (Standard_Long_Long_Long_Integer_Width): Likewise.
+       (System_Max_Integer_Size): Turn into variable.
+       (System_Max_Binary_Modulus_Power): Likewise.
+       * uintp.ads (Uint_127): New constant.
+       * uintp.adb (UI_Power_2): Extednd to 128.
+       (UI_Power_10): Likewise.
+       (UI_Expon): Deal with exponent up to 128 specially.
+       * usage.adb (Write_Switch_Char): Print -gnate128 switch.
+       * libgnat/a-tifiio.adb (Put_Scaled): Call Scaled_Divide64.
+       * libgnat/interfac__2020.ads (Integer_128): New integer type.
+       (Unsigned_128): New modular type.
+       (Shift_Left, Shift_Right, Shift_Right_Arithmetic, Rotate_Left,
+       Rotate_Right): New intrinsic functions operating on it.
+       * libgnat/s-aridou.ads, libgnat/s-aridou.adb: New generic
+       package.
+       * libgnat/s-arit64.ads, libgnat/s-arit64.adb: Instantiate
+       System.Arithmetic_Double.
+       * libgnat/s-arit128.ads, libgnat/s-arit128.adb: Likewise.
+       * libgnat/s-bytswa.ads: Add with clause for Interfaces, use subtypes
+       of unsigned types defined in Interfaces and add Bswap_128.
+       * libgnat/s-casi128.ads, libgnat/s-casi128.adb: New package.
+       * libgnat/s-caun128.ads, libgnat/s-caun128.adb: Likewise.
+       * libgnat/s-exnint.ads: Instantiate System.Exponn.
+       * libgnat/s-exnint.adb: Add pragma No_Body.
+       * libgnat/s-exnlli.ads: Instantiate System.Exponn.
+       * libgnat/s-exnlli.adb: Add pragma No_Body.
+       * libgnat/s-exnllli.ads: Instantiate System.Exponn.
+       * libgnat/s-expint.ads: Likewise.
+       * libgnat/s-expint.adb: Add pragma No_Body.
+       * libgnat/s-explli.ads: Instantiate System.Exponn.
+       * libgnat/s-explli.adb: Add pragma No_Body.
+       * libgnat/s-expllli.ads: Instantiate System.Exponn.
+       * libgnat/s-explllu.ads: Instantiate System.Exponu.
+       * libgnat/s-expllu.ads: Likewise.
+       * libgnat/s-expllu.adb: Add pragma No_Body.
+       * libgnat/s-exponn.ads, libgnat/s-exponn.adb: New generic
+       function.
+       * libgnat/s-expont.ads, libgnat/s-expont.adb: Likewise.
+       * libgnat/s-exponu.ads, libgnat/s-exponu.adb: Likewise.
+       * libgnat/s-expuns.ads, libgnat/s-expuns.adb: Likewise.
+       * libgnat/s-pack65.ads, libgnat/s-pack65.adb: New package.
+       * libgnat/s-pack66.ads, libgnat/s-pack66.adb: New package.
+       * libgnat/s-pack67.ads, libgnat/s-pack67.adb: New package.
+       * libgnat/s-pack68.ads, libgnat/s-pack68.adb: New package.
+       * libgnat/s-pack69.ads, libgnat/s-pack69.adb: New package.
+       * libgnat/s-pack70.ads, libgnat/s-pack70.adb: New package.
+       * libgnat/s-pack71.ads, libgnat/s-pack71.adb: New package.
+       * libgnat/s-pack72.ads, libgnat/s-pack72.adb: New package.
+       * libgnat/s-pack73.ads, libgnat/s-pack73.adb: New package.
+       * libgnat/s-pack74.ads, libgnat/s-pack74.adb: New package.
+       * libgnat/s-pack75.ads, libgnat/s-pack75.adb: New package.
+       * libgnat/s-pack76.ads, libgnat/s-pack76.adb: New package.
+       * libgnat/s-pack77.ads, libgnat/s-pack77.adb: New package.
+       * libgnat/s-pack78.ads, libgnat/s-pack78.adb: New package.
+       * libgnat/s-pack79.ads, libgnat/s-pack79.adb: New package.
+       * libgnat/s-pack80.ads, libgnat/s-pack80.adb: New package.
+       * libgnat/s-pack81.ads, libgnat/s-pack81.adb: New package.
+       * libgnat/s-pack82.ads, libgnat/s-pack82.adb: New package.
+       * libgnat/s-pack83.ads, libgnat/s-pack83.adb: New package.
+       * libgnat/s-pack84.ads, libgnat/s-pack84.adb: New package.
+       * libgnat/s-pack85.ads, libgnat/s-pack85.adb: New package.
+       * libgnat/s-pack86.ads, libgnat/s-pack86.adb: New package.
+       * libgnat/s-pack87.ads, libgnat/s-pack87.adb: New package.
+       * libgnat/s-pack88.ads, libgnat/s-pack88.adb: New package.
+       * libgnat/s-pack89.ads, libgnat/s-pack89.adb: New package.
+       * libgnat/s-pack90.ads, libgnat/s-pack90.adb: New package.
+       * libgnat/s-pack91.ads, libgnat/s-pack91.adb: New package.
+       * libgnat/s-pack92.ads, libgnat/s-pack92.adb: New package.
+       * libgnat/s-pack93.ads, libgnat/s-pack93.adb: New package.
+       * libgnat/s-pack94.ads, libgnat/s-pack94.adb: New package.
+       * libgnat/s-pack95.ads, libgnat/s-pack95.adb: New package.
+       * libgnat/s-pack96.ads, libgnat/s-pack96.adb: New package.
+       * libgnat/s-pack97.ads, libgnat/s-pack97.adb: New package.
+       * libgnat/s-pack98.ads, libgnat/s-pack98.adb: New package.
+       * libgnat/s-pack99.ads, libgnat/s-pack99.adb: New package.
+       * libgnat/s-pack100.ads, libgnat/s-pack100.adb: New package.
+       * libgnat/s-pack101.ads, libgnat/s-pack101.adb: New package.
+       * libgnat/s-pack102.ads, libgnat/s-pack102.adb: New package.
+       * libgnat/s-pack103.ads, libgnat/s-pack103.adb: New package.
+       * libgnat/s-pack104.ads, libgnat/s-pack104.adb: New package.
+       * libgnat/s-pack105.ads, libgnat/s-pack105.adb: New package.
+       * libgnat/s-pack106.ads, libgnat/s-pack106.adb: New package.
+       * libgnat/s-pack107.ads, libgnat/s-pack107.adb: New package.
+       * libgnat/s-pack108.ads, libgnat/s-pack108.adb: New package.
+       * libgnat/s-pack109.ads, libgnat/s-pack109.adb: New package.
+       * libgnat/s-pack110.ads, libgnat/s-pack110.adb: New package.
+       * libgnat/s-pack111.ads, libgnat/s-pack111.adb: New package.
+       * libgnat/s-pack112.ads, libgnat/s-pack112.adb: New package.
+       * libgnat/s-pack113.ads, libgnat/s-pack113.adb: New package.
+       * libgnat/s-pack114.ads, libgnat/s-pack114.adb: New package.
+       * libgnat/s-pack115.ads, libgnat/s-pack115.adb: New package.
+       * libgnat/s-pack116.ads, libgnat/s-pack116.adb: New package.
+       * libgnat/s-pack117.ads, libgnat/s-pack117.adb: New package.
+       * libgnat/s-pack118.ads, libgnat/s-pack118.adb: New package.
+       * libgnat/s-pack119.ads, libgnat/s-pack119.adb: New package.
+       * libgnat/s-pack120.ads, libgnat/s-pack120.adb: New package.
+       * libgnat/s-pack121.ads, libgnat/s-pack121.adb: New package.
+       * libgnat/s-pack122.ads, libgnat/s-pack122.adb: New package.
+       * libgnat/s-pack123.ads, libgnat/s-pack123.adb: New package.
+       * libgnat/s-pack124.ads, libgnat/s-pack124.adb: New package.
+       * libgnat/s-pack125.ads, libgnat/s-pack125.adb: New package.
+       * libgnat/s-pack126.ads, libgnat/s-pack126.adb: New package.
+       * libgnat/s-pack127.ads, libgnat/s-pack127.adb: New package.
+       * libgnat/s-rannum.ads (Random): New function returning 128-bit.
+       * libgnat/s-rannum.adb (Random): Implement it.
+       * libgnat/s-scaval.ads: Add with clause for Interfaces, use subtypes
+       of unsigned types defined in Interfaces.
+       * libgnat/s-scaval.adb: Add use clause for Interfaces.
+       * libgnat/s-scaval__128.ads, libgnat/s-scaval__128.adb: New
+       package.
+       * libgnat/s-unstyp.ads (Long_Long_Long_Unsigned): New modular type.
+       (Shift_Left, Shift_Right, Shift_Right_Arithmetic, Rotate_Left,
+       Rotate_Right): New intrinsic functions operating on it.
+
+2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_characteristics.rst: Add
+       Long_Long_Long_Integer to the list of predefined integer types.
+       * gnat_rm.texi: Regenerate.
+
+2020-10-21  Yannick Moy  <moy@adacore.com>
+
+       * ada_get_targ.adb (Width_From_Size): Add case for 128 bits.
+       Reorder declarations in the same order as get_targ.adb to
+       facilitate diffs.
+
+2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_aggr.adb (Expand_N_Aggregate): Refactor repeated calls to
+       Etype (N).
+       (Build_Array_Aggr_Code): Fix whitespace.
+
+2020-10-21  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * adaint.c (__gnat_file_time): Use regular arithmetic instead of
+       __builtin_*_overflow routines if GCC version 4 or less and
+       compiler is g++.
+
+2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb (Resolve_Array_Aggregate): Use Choice_List, which
+       internally calls either Choice or Discrete_Choices, depending on
+       the context.
+
+2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb (Resolve_Iterated_Component_Association): Use
+       existing defining identifier for index parameter.
+
+2020-10-21  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch9.adb (Build_Task_Activation_Call): Do not generate a
+       call to activate tasks if we are within the scope of a protected
+       type and pragma Detect_Blocking is active.
+
+2020-10-21  Liaiss Merzougue  <merzougue@adacore.com>
+
+       * libgnat/s-carsi8.adb (Compare_Array_S8): Add pragma Assert to
+       avoid warning concerning Left_Len and RighLen value regarding
+       Bytes_Compared_As_Words.
+       * libgnat/s-carun8.adb (Compare_Array_U8): Likewise.
+       * libgnat/s-geveop.adb (Binary_Operation, Unary_Operation): Add
+       pragma Assert concerning divide by 0 warning.
+       * libgnat/s-imgcha.adb (Image_Character): Code update to prevent
+       constant operation warning.
+       (Image_Character): Add pragma Assert concerning the unchecked
+       String size.
+       * libgnat/s-imgdec.adb
+       (Round): Upate loop code to prevent warning concerning
+       Digs'First access.
+       (Round): Add pragma assert.
+       (Set): Add pragma Assert for the unchecked string size.
+       (Set_Digits): Add pragma Assert for the input range.
+       (Set_Decimal_Digits): Add pragma Assert.
+       (Set_Blank_And_Sign): Add pragma Assert for the input range.
+       * libgnat/s-arit64.adb (DoubleDivide): Add pragma Assert
+       concerning Du /= 0.
+       (Multiply_With_Ovflo_Check): Add pragma Annotate to avoid
+       warning concerning unsigned -> signed conversion.
+       * libgnat/s-imguns.adb (Set_Image_Unsigned): Add pragma Assert
+       to prevent overflow check warning.  Add pragma Assert for
+       controlling S'First = 1.
+       * libgnat/s-imgrea.adb (Image_Floating_Point, Set, Set_Digs,
+       Set_Special_Fill, Convert_Integer): Add pragma Annotate to
+       prevent overflow check warning.
+       (Set_Image_Real): Add pragma Annotate to avoid dead code warning
+       on float check. Add pragma Assert to prevent overflow check
+       warning.
+       * libgnat/s-imgwiu.adb (Set_Digits, Set_Image_Width_Unsigned):
+       Add pragma assert to prevent overflow check warning.
+       * libgnat/s-imgllu.adb (Set_Image_Long_Long_Unsigned): Add
+       pragma assert to prevent overflow check warning.
+       * libgnat/s-imgint.adb (Set_Digits): Add Assert for input
+       constraint and to prevent overflow check warning, create
+       Non_Positive subtype, and change the T parameter as Non_Positive
+       instead Integer.
+       (Set_Image_Integer): Add pragma assert to prevent overflow check
+       warning.
+       * libgnat/s-imglli.adb (Set_Digits): Add Assert for input
+       constraint and to prevent overflow check warning, create
+       Non_Positive subtype, and change the T parameter as Non_Positive
+       instead Integer.
+       (Set_Image_Long_Long_Integer): Add pragma assert to prevent
+       overflow check warning.
+       * libgnat/s-fatgen.adb (Decompose, Pred, Succ): Add pragma
+       Annotate to prevent dead code due to invalid float check.
+       * libgnat/s-imenne.adb (Image_Enumeration_8,
+       Image_Enumeration_16, Image_Enumeration_32): Add pragma Assert
+       to prevent overflow check warning.  Add Names_Index subtype for
+       restricting Index_table content.
+
+2020-10-21  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch6.adb (Insert_Post_Call_Actions): Test for
+       N_Explicit_Dereference as part of the existing test for function
+       calls.
+
+2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * freeze.adb (Check_Strict_Alignment): Do not set the flag for
+       a bit-packed array type, even if it is a by-reference type.
+
+2020-10-21  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * adaint.c (__gnat_file_time): New routine.
+       (__gnat_copy_attribs): Copy timestamps in nanoseconds.
+       * libgnat/a-direct.adb (C_Modification_Time): Bind to
+       __gnat_file_time.
+       (Modification_Time): Call to C_Modification_Time.
+
+2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb (Resolve_Iterated_Component_Association):
+       Expression's copy and now has the same parent as the original
+       expression.
+       (Resolve_Array_Aggregate): Add ??? comment about a still
+       existing minor issue that led to discovery of the above crash.
+
+2020-10-21  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch12.adb (Install_Parents_Of_Generic_Context): Simplify
+       functionality; collect and install parents of generic child
+       package.
+       (Remove_Parents_Of_Generic_Context): Code cleanup.
+       (Instantiate_Package_Body): Hide parents of generic context from
+       visibility before installing the parent instance; restore their
+       visibility when the instance is analyzed
+
+2020-10-21  Doug Rupp  <rupp@adacore.com>
+
+       * libgnarl/s-osinte__lynxos178e.ads: Remove -mthreads switch.
+
+2020-10-21  Patrick Bernardi  <bernardi@adacore.com>
+
+       * env.c (__gnat_setenv): call setenv for VxWorks 7 kernel mode.
+       (__gnat_environ): envGet takes an int instead of a NULL pointer.
+       (__gnat_unsetenv): call unsetenv for VxWorks 7 kernel mode.
+       (__gnat_clearenv): use __gnat_unsetenv to clear environment
+       variables.
+
+2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch12.adb (Freeze_Subprogram_Body): Call
+       Package_Freeze_Node to retrieve the freeze node for the
+       enclosing body of the generic.
+
+2020-10-21  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch6.adb (Expand_Call_Helper): Modify calls to
+       Add_Extra_Actual to use Extra_Accessibility instead of
+       Get_Accessibility for the EF parameter.
+
+2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch6.adb (Expand_Actuals): Whitespace cleanup.
+       * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Make minimum
+       accessibility a constant object.
+
+2020-10-21  Patrick Bernardi  <bernardi@adacore.com>
+
+       * env.c (__gnat_environ): For VxWorks kernel simply return the
+       result of the envGet call. Do this for VxWorks 6 and 7 as they
+       both support the same API.
+
+2020-10-21  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * exp_ch7.adb (Build_Finalizer): Disable warnings on referenced
+       entity.
+
+2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.ads, sem_ch3.adb, sem_util.adb: Fix comments.
+
+2020-10-21  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch3.adb (Build_Derived_Type): Propagate convention of
+       class-wide parent.
+
+2020-10-21  Claire Dross  <dross@adacore.com>
+
+       * libgnat/a-cofove.adb (Copy): Add explanation in case of
+       Capacity_Error.
+       (Insert_Space): Raise Capacity_Error if the new length is
+       greater than the capacity.
+       (Reserve_Capacity): Raise Capacity_Error instead of
+       Constraint_Error.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Constrain_Decimal, Constrain_Enumeration,
+       Constrain_Float, Constrain_Integer, Constrain_Ordinary_Fixed):
+       Refine parameter type from Node_Id to Entity_Id.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sprint.adb (po): Set Dump_Freeze_Null to False; align colons.
+       (ps): Likewise.
+
+2020-10-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * sinfo.ads, sinfo.adb: The flag Box_Present can appear in
+       Iterated_Element_Association nodes.
+       * sem_aggr.adb (Resolve_Aggregate): Call
+       Resolve_Container_Aggregate when type of context has
+       corresponding aspect.
+       * sem_type.adb (Covers): In Ada_2020 an aggregate is compatible
+       with a type that carries the corresponding aspect.
+       * exp_ch3.adb (Make_Controlling_Function_Wrappers): Do not
+       create declarations and bodies for inherited primitive functions
+       of null extensions that dispatch on result, when current scope
+       includes an immediately visible non-overloadable homonym of the
+       function.
+       * libgnat/a-cborse.adb, libgnat/a-cborse.ads,
+       libgnat/a-cbhase.ads, libgnat/a-cbhase.adb,
+       libgnat/a-cborma.adb, libgnat/a-cborma.ads,
+       libgnat/a-cbhama.adb, libgnat/a-cbhama.ads,
+       libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
+       libgnat/a-convec.ads, libgnat/a-ciorse.ads,
+       libgnat/a-cihase.ads, libgnat/a-cihase.adb,
+       libgnat/a-ciorma.ads, libgnat/a-cihama.ads,
+       libgnat/a-cihama.adb, libgnat/a-cidlli.ads,
+       libgnat/a-cidlli.adb, libgnat/a-coinve.adb,
+       libgnat/a-cobove.adb, libgnat/a-cobove.ads,
+       libgnat/a-convec.adb, libgnat/a-coinve.ads,
+       libgnat/a-coorse.ads, libgnat/a-cohase.adb,
+       libgnat/a-cohase.ads, libgnat/a-coorma.ads,
+       libgnat/a-cohama.adb, libgnat/a-cohama.ads,
+       libgnat/a-cdlili.ads: Add primitive function Empty for use in
+       aspect Aggregate, and add corresponding body or expression
+       function.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * aspects.adb (Has_Aspect_Specifications_Flag): Add
+       N_Parameter_Specification.
+       * par-ch13.adb (Aspect_Specifications_Present): Also handle case
+       of an unknown aspect on the last formal parameter (terminated by
+       a Tok_Right_Paren). Minor reformatting.
+       * par-ch6.adb (P_Formal_Part): Scan aspects on formal
+       parameters.
+       * par.adb: Fix typos.
+       * sem_ch6.adb (Process_Formals): Add processing of aspects and
+       in particular Unreferenced aspect for now.
+       * sinfo.ads: Allow ASPECT_SPECIFICATIONS on a
+       PARAMETER_SPECIFICATION.
+       * doc/gnat_rm/implementation_defined_aspects.rst
+       (Aspect Unreferenced): Update documentation.
+       * gnat_rm.texi: Regenerate.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.ads, sem_util.adb (Get_Accessibility): Refine result
+       type from Node_Id to Entity_Id.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.adb, exp_attr.adb, sem_ch13.adb, sem_util.adb: Use
+       Is_Formal where possible.
+
+2020-10-20  Steve Baird  <baird@adacore.com>
+
+       * sem_util.ads: Declare a new package, Old_Attr_Util, which in
+       turn declares two more packages, Conditional_Evaluation and
+       Indirect_Temps. Conditional_Evaluation provides a predicate for
+       deciding whether a given 'Old attribute reference is eligible
+       for conditional evaluation and, in the case where it is
+       eligible, a function that constructs the Boolean-valued
+       condition that is to be evaluated at run time in deciding
+       whether to evaluate the attribute prefix.  Indirect_Temps
+       provides support for declaring a temporary which is only
+       initialized conditionally; more specifically, an access type and
+       a variable of that type are declared (unconditionally) and then
+       the variable is (conditionally) initialized with an allocator.
+       The existence of the access type and the pointer variable is
+       hidden from clients, except that a predicate,
+       Is_Access_Type_For_Indirect_Temp, is provided for identifying
+       such access types. This is needed because we want such an access
+       type to be treated like a "normal" access type (specifically
+       with respect to finalization of allocated objects). Other parts
+       of the compiler treat access types differently if
+       Comes_From_Source is False, or if the secondary stack storage
+       pool is used; this predicate is used to disable this special
+       treatment.
+       * sem_attr.adb (Uneval_Old_Msg): Improve message text to reflect
+       Ada202x changes.
+       (Analyze_Attribute): A previously-illegal 'Old attribute
+       reference is accepted in Ada2020 if it is eligible for
+       conditional evaluation.
+       * sem_res.adb (Valid_Conversion): Do not treat a rewritten 'Old
+       attribute like other rewrite substitutions. This makes a
+       difference, for example, in the case where we are generating the
+       expansion of a membership test of the form "Saooaaat'Old in
+       Named_Access_Type"; in this case Valid_Conversion needs to
+       return True (otherwise the expansion will be False - see the
+       call site in exp_ch4.adb).
+       * exp_attr.adb (Expand_N_Attribute_Reference): When expanding a
+       'Old attribute reference, test for the case where the reference
+       is eligible for conditional evaluation. In that case, use the
+       new "indirect temporary" mechanism provided by Sem_Util.
+       * exp_prag.adb
+       (Expand_Attributes_In_Consequence.Expand_Attributes): If
+       Sem_Util.Indirect_Temp_Needed indicates that there could be
+       correctness problems associated with the old expansion scheme
+       for dealing with 'Old attributes in contract cases consequences,
+       then we use the new "indirect temporary" mechanism provided by
+       Sem_Util instead. We do not want to do this unconditionally.
+       * sem_util.adb: Provide a body for the new Old_Attr_Util
+       package. Further work is needed in several areas for
+       correctness:
+       - The function Is_Repeatedly_Evaluated does not deal with
+       container aggregates yet.
+       - The function Is_Known_On_Entry does not deal with interactions
+       with the Global aspect.
+       Each area where more work is needed is indicated with a "???"
+       comment in the code; a more detailed description can be found
+       there. Some optimization opportunties are similarly indicated
+       with a "???" comment.
+       * exp_ch3.adb (Freeze_Type): In deciding whether to generate
+       expansion for the list controller of an access type, take the
+       predicate Is_Access_Type_For_Indirect_Temp into account. If the
+       predicate yields True, then generate the expansion.
+       * exp_util.adb (Build_Allocate_Deallocate_Proc): We don't
+       normally finalize allocated objects that are allocated on the
+       secondary stack. Add an exception to this rule if the predicate
+       Is_Access_Type_For_Indirect_Temp yields True.  As a result of
+       this exception, we have to deal with the fact that gigi expects
+       a different parameter profile if we are using the secondary
+       stack pool; the Pool and Alignment parameters must be omitted in
+       this case.
+
+2020-10-20  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch12.adb (Install_Parents_Of_Generic_Context,
+       Remove_Parents_Of_Generic_Context): New subprograms.
+       (Instantiate_Package_Body): Adding assertions to ensure that
+       installed parents are properly removed.
+
+2020-10-20  Claire Dross  <dross@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute): Emit a warning on 'Update
+       when Warn_On_Obsolescent_Feature is set to True.
+
+2020-10-20  Richard Kenner  <kenner@adacore.com>
+
+       * gnat_cuda.adb (Build_Register_Function_Call): Make procedure
+       call instead of function, rename to
+       Build_Register_Procedure_Call.
+       (Build_CUDA_Init_Proc): Make procedure call instead of function.
+
+2020-10-20  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch6.adb (Expand_Branch): Properly anticipate expansion of
+       conditional expressions producing object declarations in
+       addition to assignment statements, and rename formal.
+
+2020-10-20  Yannick Moy  <moy@adacore.com>
+
+       * errout.adb (Write_Source_Code_Line): Adopt display closer to
+       GCC format.
+       (Output_Messages): Deal specially with info messages.
+       * erroutc.adb (Prescan_Message): Fix bug leading to check
+       messages being considered as error messages in pretty output
+       mode.
+
+2020-10-20  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch6.adb (Expand_Call_Helper): Properly handle the case
+       where the condition of a conditional expression has been
+       optimized out when calculating the value of an extra
+       accessibility parameter.
+
+2020-10-20  Bob Duff  <duff@adacore.com>
+
+       * doc/gnat_ugn/gnat_utility_programs.rst: Change "_" to "-".
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_aggr.adb (Resolve_Aggregate): Warn on not fully
+       initialized box aggregate.
+       * sem_aggr.ads: Fix typo.
+       * sem_res.adb (Resolve_Actuals): Fix typo in error message
+       format marking it incorrectly as a continuation message.
+       * sem_elab.adb (Check_Internal_Call_Continue): Similarly, add
+       missing primary message in case of a call to an actual generic
+       subprogram.
+       * sem_warn.adb (Check_References): Do not warn on read but never
+       assigned variables if the type is partially initialized.
+       * libgnat/a-except.ads, libgnat/a-ststun.ads,
+       libgnat/g-sechas.ads, libgnat/a-cbdlli.ads,
+       libgnat/a-cfdlli.ads, libgnat/a-cobove.ads,
+       libgnat/a-cohata.ads, libgnat/a-crbltr.ads,
+       libgnat/a-cbmutr.ads, libgnat/a-crdlli.ads,
+       libgnat/a-cbsyqu.ads: Address new warning.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Update doc on -gnatwv.
+       * gnat_ugn.texi: Regenerate.
+
+2020-10-20  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch6.adb (Analyze_Expression_Function): Mark static
+       expression functions as inlined.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * contracts.adb (Is_Prologue_Renaming): This function was
+       missing support for E_Constant which can also be generated in
+       protected objects.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * bindgen.adb (Gen_Bind_Env_String): Generate Ada 2012 compatible
+       strings. Code cleanup.
+
+2020-10-20  Yannick Moy  <moy@adacore.com>
+
+       * sem_util.adb, sem_util.ads: Comment fix.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch8.adb (Check_Constrained_Object): Suppress discriminant
+       checks when the type has default discriminants and comes from
+       expansion of a "for of" loop.
+
+2020-10-20  Bob Duff  <duff@adacore.com>
+
+       * atree.ads: Make Default_Node a constant.  Remove the
+       modification of Comes_From_Source, and use a separate flag for
+       that.  Change Sloc to 0; it always overwritten, and never left
+       as the No_Location value.
+       (Print_Statistics): Move to spec so we can call it from
+       gnat1drv.
+       (Num_Nodes): Rename to clarify that this is approximate.
+       Correct comment: nodes and entities are never deleted, the count
+       is never decremented, and this is not used by Xref.
+       (Initialize): Correct comment: Error_List is not created here.
+       Other minor naming and comment changes.
+       * atree.adb (Extend_Node, New_Copy, New_Entity, New_Node):
+       Streamline these. Simplify and improve efficiency.  Move code
+       from Allocate_Initialize_Node to these, where it can be executed
+       unconditionally.  Take advantage of automatic zeroing of the
+       Nodes table.
+       (Allocate_Initialize_Node): Remove this. It was an efficiency
+       bottleneck, and somewhat complicated, because it was called from
+       4 places, and had all sorts of conditionals to check where it
+       was called from. Better to move most of that code to the call
+       sites, where it can be executed (or not) unconditionally.
+       (Allocate_New_Node): New procedure to partly replace
+       Allocate_Initialize_Node (called from just 2 of those 4 places).
+       (Comes_From_Source_Default): New flag written/read by
+       Set_Comes_From_Source_Default/Get_Comes_From_Source_Default.
+       This allows us to make Default_Node into a constant with
+       all-zeros value.
+       (Set_Paren_Count_Of_Copy): New procedure to avoid duplicated
+       code.
+       (Report): New procedure to encapsulate the call to the reporting
+       procedure.
+       (Atree_Private_Part): We now need a body for this package, to
+       contain package body Nodes.
+       (Approx_Num_Nodes_And_Entities): Was Num_Nodes.  For efficiency,
+       compute the answer from Nodes.Last. That way we don't need to
+       increment a counter on every node creation. Other minor naming
+       and comment changes.
+       * gnat1drv.adb: Call Atree.Print_Statistics if -gnatd.A switch
+       was given.  Add comment documenting the new order dependency (we
+       must process the command line before calling Atree.Initialize).
+       * debug.adb: Document -gnatd.A.
+       * einfo.adb, sinfo.adb: Remove useless Style_Checks pragmas.
+       * nlists.ads (Allocate_List_Tables): Inline makes node creation
+       a little faster.
+       * nlists.adb (Initialize): Remove local constant E, which didn't
+       seem to add clarity.
+       * treepr.adb (Print_Init): Use renamed
+       Approx_Num_Nodes_And_Entities function.
+       * types.ads: Change the Low and High bounds as described above.
+       * types.h: Change Low and High bounds to match types.ads.
+       * sem_ch8.adb, namet.adb, namet.ads: Move the computation of
+       Last_Name_Id from sem_ch8 to namet, and correct it to not assume
+       Name_Ids are positive.
+       * ali.adb, ali-util.adb, bindo-writers.adb, exp_dist.adb,
+       fmap.adb, fname-uf.adb, osint.adb: Fix various hash functions to
+       avoid assuming the various ranges are positive. Note that "mod"
+       returns a nonnegative result when the second operand is
+       positive. "rem" can return negative values in that case (in
+       particular, if the first operand is negative, which it now is).
+       * switch-c.adb: Allow switch -gnaten to control the value of
+       Nodes_Size_In_Meg.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Remove traling whitespaces.
+       * opt.ads (Nodes_Size_In_Meg): New Variable.
+
+2020-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_util.adb (Remove_Side_Effects): Always generate a renaming
+       that is handled by the front-end in the case of an indexed or a
+       selected component whose prefix has a nonstandard representation.
+
+2020-10-20  Pat Rogers  <rogers@adacore.com>
+
+       * doc/gnat_rm/the_gnat_library.rst: Add Ada.Task_Initialization.
+       * gnat_rm.texi: Regenerate.
+
+2020-10-20  Yannick Moy  <moy@adacore.com>
+
+       * errout.adb: (Error_Msg-Internal): Pass the location for a line
+       insertion if any in the message.
+       (Output_Messages: Add display of source code lines if -gnatdF is
+       set.
+       (Write_Source_Code_Line): Code clean up.
+       * erroutc.adb (Prescan_Message): Apply prescan for continuation
+       lines when -gnatdF is set, and record presence of line
+       insertion.
+       * erroutc.ads (Has_Insertion_Line): New global for prescan.
+       (Error_Msg_Object): Add field to record line insertion if
+       present.
+       * errutil.adb (Error_Msg): Pass no location for Insertion_Sloc.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch5.adb (Expand_N_Case_Statement): Do not generate
+       validity check when possible.
+
+2020-10-20  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_aggr.adb (Expand_Iterated_Component): Reorganize code to
+       ensure that Loop_Id is properly initialized on all paths, and
+       remove code duplication.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate predicate
+       function to full view of the created type as well, if it was
+       created.
+
+2020-10-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference): Merge handling of
+       Simple_Storage_Pool and Storage_Pool.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * aspects.ads: Introduce Subprogram_Variant aspect with the
+       following properties: GNAT-specific, with mandatory expression,
+       not a representation aspect, never delayed.
+       * contracts.adb (Expand_Subprogram_Contract): Mention new aspect
+       in the comment.
+       (Add_Contract_Item): Support addition of pragma
+       Subprogram_Variant to N_Contract node.
+       (Analyze_Entry_Or_Subprogram_Contract): Mention new aspect in
+       the comment; add pragma Subprogram_Variant to N_Contract node.
+       (Build_Postconditions_Procedure): Adapt call to
+       Insert_Before_First_Source_Declaration, which is now reused in
+       expansion of new aspect.
+       (Process_Contract_Cases_For): Also process Subprogram_Variant,
+       which is stored in N_Contract node together with Contract_Cases.
+       * contracts.ads (Analyze_Entry_Or_Subprogram_Contract): Mention
+       new aspect in the comment.
+       (Analyze_Entry_Or_Subprogram_Body_Contract): Likewise.
+       * einfo.adb (Get_Pragma): Support retrieval of new pragma.
+       * einfo.ads (Get_Pragma): Likewise.
+       * exp_ch6.adb (Check_Subprogram_Variant): New routine for
+       emitting call to check Subprogram_Variant expressions at run
+       time.
+       (Expand_Call_Helper): Check Subprogram_Variant expressions at
+       recursive calls.
+       * exp_prag.adb (Make_Op): Moved from expansion of pragma
+       Loop_Variant to Exp_Util, so it is now reused for expansion of
+       pragma Subprogram_Variant.
+       (Process_Variant): Adapt call to Make_Op after moving it to
+       Exp_Util.
+       (Expand_Pragma_Subprogram_Variant): New routine.
+       * exp_prag.ads (Expand_Pragma_Subprogram_Variant): Likewise.
+       * exp_util.adb (Make_Variant_Comparison): Moved from Exp_Prag
+       (see above).
+       * exp_util.ads (Make_Variant_Comparison): Likewise.
+       * inline.adb (Remove_Aspects_And_Pragmas): Handle aspect/pragma
+       Subprogram_Variant just like similar contracts.
+       * par-prag.adb (Prag): Likewise.
+       * sem.adb (Insert_Before_First_Source_Declaration): Moved from
+       Contracts (see above).
+       * sem.ads (Insert_Before_First_Source_Declaration): Likewise.
+       * sem_ch12.adb: Mention new aspect in the comment about
+       "Implementation of Generic Contracts", just like similar aspects
+       are mentioned there.
+       * sem_ch13.adb (Insert_Pragma): Mention new aspect in the
+       comment, because this routine is now used for Subprogram_Variant
+       just like for other similar aspects.
+       (Analyze_Aspect_Specifications): Mention new aspect in comments;
+       it is handled just like aspect Contract_Cases.
+       (Check_Aspect_At_Freeze_Point): Do not expect aspect
+       Subprogram_Variant just like we don't expect aspect
+       Contract_Cases.
+       * sem_prag.adb (Ensure_Aggregate_Form): Now also used for pragma
+       Subprogram_Variant, so update comment.
+       (Analyze_Pragma): Add initial checks for pragma
+       Subprogram_Variant.
+       (Analyze_Subprogram_Variant_In_Decl_Part): New routine with
+       secondary checks on the new pragma.
+       (Sig_Flags): Handle references within pragma Subprogram_Variant
+       expression just like references in similar pragma
+       Contract_Cases.
+       (Is_Valid_Assertion_Kind): Handle Subprogram_Variant just like
+       other similar contracts.
+       * sem_prag.ads (Analyze_Subprogram_Variant_In_Decl_Part): New
+       routine.
+       * sem_res.adb (Same_Or_Aliased_Subprograms): Moved to Sem_Util,
+       so it can be reused for detection of recursive calls where
+       Subprogram_Variant needs to be verified.
+       * sem_util.adb (Is_Subprogram_Contract_Annotation): Handle new
+       Subprogram_Variant annotation just like other similar
+       annotations.
+       (Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above).
+       * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
+       aspect in the comment.
+       (Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above).
+       * sinfo.ads (N_Contract): Document handling of
+       Subprogram_Variant.
+       * snames.ads-tmpl: Add name for the internally generated
+       procedure with checks for Subprogram_Variant expression, name
+       for the new aspect and new pragma corresponding to aspect
+       Subprogram_Variant.
+
+2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_util.ads: Reorder declaration.
+
+2020-10-19  Ed Schonberg  <schonberg@adacore.com>
+
+       * par-ch4.adb: (P_Aggregate_Or_Paren_Expr): Recognize
+       Iterated_Element_Component.
+       (P_Iterated_Component_Association): Rebuild node as an Iterated_
+       Element_Association when Key_Expression is present, and attach
+       either the Loop_Parameter_Specification or the
+       Iterator_Specification to the new node.
+       * sem_aggr.adb: (Resolve_Container_Aggregate):
+       Resolve_Iterated_Association handles bota Iterated_Component_
+       and Iterated_Element_Associations, in which case it analyzes and
+       resoles the orresponding Key_Expression.
+       * exp_aggr.adb (Expand_Iterated_Component): If a Key_Expression
+       is present, use it as the required parameter in the call to the
+       insertion routine for the destination container aggregate. Call
+       this routine for both kinds of Iterated_Associations.
+
+2020-10-19  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch4.adb (Expand_Concatenate): Enable needed range checks.
+
+2020-10-19  Bob Duff  <duff@adacore.com>
+
+       * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
+       Set the Warnings_Off flag on the pointer object used in the
+       expansion of iterators and similar.
+
+2020-10-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.rtl (PowerPC/Linux): Use s-taspri__posix.ads instead
+       of s-taspri__posix-noaltstack.ads for s-taspri.ads.
+
+2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Add_Call): Remove excessive condition and
+       unnecessary call to Set_Has_Predicates.
+
+2020-10-19  Yannick Moy  <moy@adacore.com>
+
+       * debug.adb: Use debug switch -gnatdF for this alternative
+       display of messages.
+       * errout.adb (Output_Messages): Alternative display when -gnatdF
+       is used.
+       * erroutc.adb (Output_Msg_Text): Likewise.
+
+2020-10-19  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch6.adb (Check_Untagged_Equality): Check for AI12-0352.
+
+2020-10-19  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch6.adb (Add_View_Conversion_Invariants): Do not insert
+       generated invariant checks when the call is a function call.
+       These tests are properly inserted in the code in procedure
+       Insert_Post_Call_Actions, which takes care of finding the proper
+       insertion point for the checks.
+       (Insert_Post_Call_Actions): Add question marks to indicate
+       possible gap in handling function calls that appear as aggregate
+       components.
+
+2020-10-19  Arnaud Charlet  <charlet@adacore.com>
+
+       * contracts.adb (Process_Preconditions_For): Do not exclude
+       instances.
+       * sem_ch4.adb (Analyze_Quantified_Expression): Disable spurious
+       warning on internally generated variables.
+
+2020-10-19  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * debug.adb: Document -gnatd_c flag as being used for CUDA.
+       * gnat_cuda.ads: New file.
+       * gnat_cuda.adb: New file.
+       * rtsfind.ads: Add Interfaces_C_Strings package and
+       RE_Fatbin_Wrapper, RE_Register_Fat_Binary,
+       RE_Register_Fat_Binary_End, RE_Register_Function, RE_Chars_Ptr,
+       RE_New_Char_Array entities.
+       * rtsfind.adb: Create new Interfaces_C_Descendant subtype,
+       handle it.
+       * sem_ch7.adb (Analyze_Package_Body_Helper): Call CUDA init
+       procedure.
+       * sem_prag.adb (Analyze_Pragma): Call Add_Cuda_Kernel procedure.
+       * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add gnat_cuda.o.
+
+2020-10-19  Bob Duff  <duff@adacore.com>
+
+       * ghost.adb (Whole_Object_Ref): New function to compute the name
+       of the whole object.
+       (Mark_And_Set_Ghost_Assignment): Rewrite to use
+       Whole_Object_Ref.  We need to partly analyze the left-hand side
+       in order to distinguish expanded names and record components.
+       * lib-xref.ads, lib-xref.adb (Deferred_References): Move table
+       to body, and add Defer_Reference to update the table, avoiding
+       duplicates.
+       (Generate_Reference): Avoid duplicates.
+       * sem_ch8.ads, sem_ch8.adb (Find_Direct_Name): Remove _OK
+       parameters, which are no longer needed. Ignore errors in
+       Ignore_Errors mode.
+       * sem_util.ads, sem_util.adb (Preanalyze_Without_Errors): Make
+       this public, so we can call it from Ghost.
+       * errout.ads, scng.adb, sem_prag.adb: Minor.
+
+2020-10-19  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference): Check if type
+       depends on discriminant.
+
+2020-10-19  Bob Duff  <duff@adacore.com>
+
+       * libgnat/a-coinve.adb, libgnat/a-cidlli.adb (Put_Image): Call
+       Iterate.
+
+2020-10-19  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_aggr.adb (Resolve_Record_Aggregate): Properly apply
+       subtype constraints when using a Default_Value.
+       * freeze.adb: Fix typo.
+
+2020-10-19  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix bug
+       where a call to Error_Msg_N leads to crash due to
+       Error_Msg_Name_1 being removed by the call, while a subsequent
+       call to Error_Msg_N tries to use it. The variable
+       Error_Msg_Name_1 should be restored prior to the next call. Also
+       add checking for the new rules.
+
+2020-10-19  Arnaud Charlet  <charlet@adacore.com>
+
+       * checks.adb (Apply_Type_Conversion_Checks): Minor code clean
+       up.
+       * exp_ch4.adb (Discrete_Range_Check): Optimize range checks.
+       Update comments.
+       (Expand_N_Type_Conversion): Generate range check when rewriting
+       a type conversion if needed. Add assertion.
+       * exp_ch6.adb (Expand_Simple_Function_Return): Minor code clean
+       up.
+       * sem_res.adb (Resolve_Type_Conversion): Apply range check when
+       needed.  Update comments.
+
+2020-10-19  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/a-textio.ads: Update top-level comment.
+
+2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Fix typo.
+
+2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch6.adb (Expand_Actuals): Simplify condition for by-copy
+       types.
+
+2020-10-19  Yannick Moy  <moy@adacore.com>
+
+       * errout.ads: Add comment regarding lack of preservation of
+       Errout state across successive calls to the API.
+
+2020-10-19  Bob Duff  <duff@adacore.com>
+
+       * exp_put_image.adb (Build_Elementary_Put_Image_Call): Use the
+       base type to recognize various cases of access types.
+       * libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb,
+       libgnat/a-cbhama.ads, libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
+       libgnat/a-cbmutr.adb, libgnat/a-cbmutr.ads, libgnat/a-cborma.adb,
+       libgnat/a-cborma.ads, libgnat/a-cborse.adb, libgnat/a-cborse.ads,
+       libgnat/a-cdlili.adb, libgnat/a-cdlili.ads, libgnat/a-cidlli.adb,
+       libgnat/a-cidlli.ads, libgnat/a-cihama.adb, libgnat/a-cihama.ads,
+       libgnat/a-cihase.adb, libgnat/a-cihase.ads, libgnat/a-cimutr.adb,
+       libgnat/a-cimutr.ads, libgnat/a-ciorma.adb, libgnat/a-ciorma.ads,
+       libgnat/a-ciormu.adb, libgnat/a-ciormu.ads, libgnat/a-ciorse.adb,
+       libgnat/a-ciorse.ads, libgnat/a-coboho.adb, libgnat/a-coboho.ads,
+       libgnat/a-cobove.adb, libgnat/a-cobove.ads, libgnat/a-cohama.adb,
+       libgnat/a-cohama.ads, libgnat/a-cohase.adb, libgnat/a-cohase.ads,
+       libgnat/a-coinho.adb, libgnat/a-coinho.ads,
+       libgnat/a-coinho__shared.adb, libgnat/a-coinho__shared.ads,
+       libgnat/a-coinve.adb, libgnat/a-coinve.ads, libgnat/a-comutr.adb,
+       libgnat/a-comutr.ads, libgnat/a-coorma.adb, libgnat/a-coorma.ads,
+       libgnat/a-coormu.adb, libgnat/a-coormu.ads, libgnat/a-coorse.adb,
+       libgnat/a-coorse.ads, libgnat/a-strunb.adb, libgnat/a-strunb.ads,
+       libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads:
+       Implement Put_Image attibute.
+       * libgnat/a-stteou.ads, libgnat/s-putima.ads,
+       libgnat/a-stouut.ads, libgnat/a-stoubu.adb: Make
+       Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
+       System.Put_Images Pure, so they can be with'ed by Pure units
+       that should have Put_Image defined.
+       * libgnat/a-stouut.adb: Add missing column adjustments, and
+       remove a redundant one.
+       * libgnat/s-putima.adb (Put_Arrow): New routine to print an
+       arrow. Avoids adding a with clause to some containers.
+
+2020-10-19  Bob Duff  <duff@adacore.com>
+
+       * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Require matching
+       parens or brackets.
+       * par.adb, par-tchk.adb (T_Right_Bracket): New procedure to give
+       an error on missing ].
+
+2020-10-19  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch8.adb (Find_Direct_Name): Do not trust in the decoration
+       of the Entity attribute in constants associated with
+       discriminals of protected types.
+
+2020-10-19  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_disp.adb (Check_Dispatching_Context): When the enclosing
+       subprogram is abstract, bypass early return if the call is
+       tag-indeterminate, to continue with the later error checking.
+
+2020-10-19  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch7.adb (Uninstall_Declarations): Uninstall the
+       declaration of a subtype declaration defined in the private part
+       of a package.
+
+2020-10-19  Arnaud Charlet  <charlet@adacore.com>
+
+       * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify code since
+       we are always under -gnatX if we encounter a Tok_Left_Bracket.
+       * scng.adb (Scan): [] is an aggregate under -gnatX and a wide
+       character otherwise.
+
+2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch6.adb (Expand_Call_Helper): Cleanup.
+
+2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch6.adb (Is_Direct_Deep_Call): Refine type from Node_Id to
+       Entity_Id.
+
+2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch6.adb (May_Fold): Detect all operators, i.e. both binary
+       and unary ones.
+
+2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * inline.adb (Expand_Inlined_Call): Simplify repeated calls to
+       Nkind.
+
+2020-10-18  Alexandre Oliva  <oliva@adacore.com>
+
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Compile Ada.Numerics
+       child units Aux_Generic_Float, Aux_Long_Long_Float, Aux_Long_Float,
+       Aux_Float, Aux_Short_Float, Aux_Compat, and Aux_Linker_Options.
+       (X86_TARGET_PAIRS): Drop dummy body for Aux.  Use x86 version
+       of Aux_Compat.
+       (X86_64_TARGET_PAIRS): Likewise.
+       (LIBGNAT_TARGET_PAIRS): On VxWorks, select the nolibm
+       variants.  Drop the darwin version of Aux.  Drop the redundant
+       libc-x86 numaux variants on x86* kfreebsd variants.
+       * libgnat/a-nagefl.ads: New Aux_Generic_Float.
+       * libgnat/a-naliop.ads: New Aux_Linker_Options.
+       * libgnat/a-naliop__nolibm.ads: New.
+       * libgnat/a-nallfl.ads: New Aux_Long_Long_Float.
+       * libgnat/a-nalofl.ads: New Aux_Long_Float.
+       * libgnat/a-nuaufl.ads: New Aux_Float.
+       * libgnat/a-nashfl.ads: New Aux_Short_Float.
+       * libgnat/a-ngcefu.adb (Exp): Factor out the Im (X) passed to
+       Sin and Cos in the Complex variant too.
+       * libgnat/a-ngcoty.adb: Switch to Aux_Generic_Float.  Drop
+       redundant conversions.
+       * libgnat/a-ngelfu.adb: Likewise.
+       * libgnat/a-nuauco.ads: New Aux_Compat.
+       * libgnat/a-nuauco__x86.ads: New.
+       * libgnat/a-numaux.ads: Replace with Compat wrapper.
+       * libgnat/a-numaux__darwin.adb: Remove.
+       * libgnat/a-numaux__darwin.ads: Remove.
+       * libgnat/a-numaux__dummy.adb: Remove.
+       * libgnat/a-numaux__libc-x86.ads: Remove.
+       * libgnat/a-numaux__vxworks.ads: Remove.
+
+2020-10-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb,
+       freeze.adb, sem_aggr.adb, sem_attr.adb, sem_ch13.adb,
+       sem_ch13.ads, sem_ch6.adb, sem_eval.adb, sem_util.adb: Fix style
+       and typos.
+
+2020-10-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_cat.adb (Is_Primary): Handle N_Range properly.
+
+2020-10-16  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * elists.ads (New_Elmt_List): New functions.
+       * elists.adb (New_Elmt_List): New functions.
+       * exp_prag.adb: Add dependency on Elists.
+       (Expand_Pragma_CUDA_Execute): New function.
+       (Expand_N_Pragma): Add call to Expand_Pragma_CUDA_Execute.
+       * rtsfind.ads: Add CUDA.Internal, CUDA.Runtime, System.C
+       packages and RE_Push_Call_Configuration,
+       RE_Pop_Call_Configuration, RE_Launch_Kernel, RO_IC_Unsigned,
+       RO_IC_Unsigned_Long_Long entities.
+       * rtsfind.adb: Extend Interfaces_Descendant to include
+       Interfaces_C.
+
+2020-10-16  Bob Duff  <duff@adacore.com>
+
+       * par-ch4.adb (P_Name): Allow Tok_Left_Bracket in two places to
+       call P_Qualified_Expression. We don't need to modify other
+       places that call P_Qualified_Expression, because a
+       qualified_expression is a name in Ada 2012 and higher, so P_Name
+       is the right place.  The parser already parses aggregates with
+       brackets; we just need to allow that in qualified expressions.
+
+2020-10-16  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch12.adb (Check_Generic_Child_Unit): When the child unit
+       is a renaming of a generic child unit then traverse the scope
+       containing the renaming declaration to locate the instance of
+       its parent.  Otherwise the parent is not installed and the
+       frontend cannot process the instantiation.
+
+2020-10-16  Bob Duff  <duff@adacore.com>
+
+       * libgnat/a-numeri.ads: Remove the greek letter.
+
+2020-10-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_imgv.adb (Expand_Image_Attribute): Refine previous patch
+       to use root type (and not base type) on enumeration types.
+
+2020-10-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_imgv.adb (Expand_Image_Attribute): Use the base type
+       instead of the root type when type of object is private. Remove
+       Ada_2020 guard, because it has been checked during prior
+       analysis. Use Underlying_Type in all cases, as it is a no-op on
+       types that are not private.
+
+2020-10-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * aspects.ads, snames.ads-tmpl: Add support for
+       Exclusive_Functions aspect.
+       * sem_ch13.adb (Analyze_Aspect_Specifications): Ditto.
+       * exp_ch9.adb (Build_Protected_Subprogram_Body): Take aspect
+       Exclusive_Functions into account.
+
+2020-10-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * gcc-interface/Make-lang.in: Update dependencies on system.ads,
+       add gnatbind switch -t to avoid timestamp inconsistencies during
+       build.
+       * libgnat/system.ads: Move...
+       * gcc-interface/system.ads: ... here.
+
+2020-10-16  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_eval.adb (Subtypes_Statically_Match): Retrieve
+       discriminant constraints from the two types via new function
+       Original_Discriminant_Constraint rather than
+       Discriminant_Constraint.
+       (Original_Discriminant_Constraint): New function to locate the
+       nearest explicit discriminant constraint associated with a type
+       that may possibly have inherited a constraint from an ancestor
+       type.
+
+2020-10-16  Bob Duff  <duff@adacore.com>
+
+       * exp_ch6.adb (Expand_Simple_Function_Return): Remove obsolete
+       comment and code.
+
+2020-10-16  Arnaud Charlet  <charlet@adacore.com>
+
+       PR ada/95953
+       * libgnat/a-suenco.adb (Convert): Fix handling of third UTF-8
+       byte.
+
+2020-10-16  Steve Baird  <baird@adacore.com>
+
+       * exp_util.adb (Is_Related_To_Func_Return): Cope with the case
+       where the FE introduces a type conversion.
+
+2020-10-16  Chris Martin  <cmartin@adacore.com>
+
+       * sem_util.ads, sem_util.adb (Is_Access_Variable): New function.
+       (Is_Synchronized_Object): Call new function when determining if
+       a constant can be regarded as synchronized.
+
+2020-10-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
+       Call Set_BIP_Initialization_Call systematically.
+       * exp_ch7.adb (Process_Transient_In_Scope): Take
+       BIP_Initialization_Call into account to decide where to insert
+       the Hook.
+
+2020-10-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb (Is_View_Conversion): Detect qualified types.
+       * sem_util.ads (Is_Actual_In_Out_Parameter): Fix style in
+       comment.
+
+2020-10-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * scil_ll.adb, sem_scil.adb: Update assertions.
+
+2020-10-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_attr.adb (Min_Max): Handle the case where attribute
+       name (qualified by required type) appears as the reducer of a
+       'Reduce attribute reference.
+       (Resolve_Attribute) <Reduce>: Handle properly the presence of a
+       procedure or an attribute reference Min/Max as a reducer.
+       * exp_attr.adb (Expand_Attribute_Reference) <Reduce>: New
+       subprogram Build_Stat, to construct the combining statement
+       which appears in the generated loop for Reduce, and which is
+       either a function call when the reducer is a function or an
+       attribute, or a procedure call when reducer is an appropriate
+       procedure.  BuilD_Stat is used both when the prefix of 'Reduce
+       is a value sequence and when it is an object
+
+2020-10-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch4.adb (Expand_Concatenate): Allocate result of string
+       concatenation on secondary stack when relevant.
+
+2020-10-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_res.adb (Resolve_Declare_Expression): Retrieve the created
+       block entity that is the scope of the local declarations, from
+       either a local object declaration or an object renaming
+       declaration. The block entity does not have an explicit
+       declaration, but appears as the scope of all locally declared
+       objects.
+
+2020-10-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/system-aix.ads: Likewise.
+       * libgnat/system-darwin-arm.ads: Likewise.
+       * libgnat/system-darwin-ppc.ads: Likewise.
+       * libgnat/system-darwin-x86.ads: Likewise.
+       * libgnat/system-djgpp.ads: Likewise.
+       * libgnat/system-dragonfly-x86_64.ads: Likewise.
+       * libgnat/system-freebsd.ads: Likewise.
+       * libgnat/system-hpux-ia64.ads: Likewise.
+       * libgnat/system-hpux.ads: Likewise.
+       * libgnat/system-linux-alpha.ads: Likewise.
+       * libgnat/system-linux-arm.ads: Likewise.
+       * libgnat/system-linux-hppa.ads: Likewise.
+       * libgnat/system-linux-ia64.ads: Likewise.
+       * libgnat/system-linux-m68k.ads: Likewise.
+       * libgnat/system-linux-mips.ads: Likewise.
+       * libgnat/system-linux-ppc.ads: Likewise.
+       * libgnat/system-linux-riscv.ads: Likewise.
+       * libgnat/system-linux-s390.ads: Likewise.
+       * libgnat/system-linux-sh4.ads: Likewise.
+       * libgnat/system-linux-sparc.ads: Likewise.
+       * libgnat/system-linux-x86.ads: Likewise.
+       * libgnat/system-lynxos178-ppc.ads: Likewise.
+       * libgnat/system-lynxos178-x86.ads: Likewise.
+       * libgnat/system-mingw.ads: Likewise.
+       * libgnat/system-qnx-aarch64.ads: Likewise.
+       * libgnat/system-rtems.ads: Likewise.
+       * libgnat/system-solaris-sparc.ads: Likewise.
+       * libgnat/system-solaris-x86.ads: Likewise.
+       * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks-arm-rtp.ads: Likewise.
+       * libgnat/system-vxworks-arm.ads: Likewise.
+       * libgnat/system-vxworks-e500-kernel.ads: Likewise.
+       * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks-e500-rtp.ads: Likewise.
+       * libgnat/system-vxworks-e500-vthread.ads: Likewise.
+       * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
+       * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
+       * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
+       * libgnat/system-vxworks-ppc-vthread.ads: Likewise.
+       * libgnat/system-vxworks-ppc.ads: Likewise.
+       * libgnat/system-vxworks-x86-kernel.ads: Likewise.
+       * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks-x86-rtp.ads: Likewise.
+       * libgnat/system-vxworks-x86-vthread.ads: Likewise.
+       * libgnat/system-vxworks-x86.ads: Likewise.
+       * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-aarch64.ads: Likewise.
+       * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-arm.ads: Likewise.
+       * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
+       * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
+       * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
+       * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
+       * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
+       * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
+       * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
+       * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
+       * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
+
+2020-10-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * Makefile.rtl, gnat1drv.adb, expander.adb
+       doc/gnat_rm/implementation_defined_pragmas.rst,
+       doc/gnat_ugn/building_executable_programs_with_gnat.rst,
+       doc/gnat_ugn/the_gnat_compilation_model.rst, exp_ch5.ads,
+       exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
+       exp_util.ads, libgnarl/s-osinte__aix.adb,
+       libgnarl/s-osinte__android.adb, libgnarl/s-osinte__darwin.adb,
+       libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__hpux-dce.adb,
+       libgnarl/s-osinte__lynxos178.adb, libgnarl/s-osinte__posix.adb,
+       libgnarl/s-osinte__qnx.adb, libgnarl/s-osinte__rtems.adb,
+       libgnarl/s-osinte__solaris.adb, libgnarl/s-osinte__vxworks.adb,
+       libgnarl/s-osinte__x32.adb, libgnarl/s-solita.adb,
+       libgnarl/s-taasde.adb, libgnarl/s-taprob.adb,
+       libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb,
+       libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
+       libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
+       libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
+       libgnarl/s-tarest.adb, libgnarl/s-tasini.adb,
+       libgnarl/s-taskin.adb, libgnarl/s-taspri__dummy.ads,
+       libgnarl/s-taspri__hpux-dce.ads, libgnarl/s-taspri__lynxos.ads,
+       libgnarl/s-taspri__mingw.ads,
+       libgnarl/s-taspri__posix-noaltstack.ads,
+       libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads,
+       libgnarl/s-taspri__vxworks.ads, libgnarl/s-tassta.adb,
+       libgnarl/s-tasuti.adb, libgnarl/s-tposen.adb,
+       libgnat/a-except.adb, libgnat/a-except.ads,
+       libgnat/s-dwalin.adb, libgnat/s-dwalin.ads,
+       libgnat/s-mastop.ads, libgnat/s-soflin.adb,
+       libgnat/s-stalib.adb, libgnat/s-stalib.ads,
+       libgnat/s-stchop.adb, libgnat/s-stchop.ads,
+       libgnat/s-stchop__limit.ads, libgnat/s-traceb.ads,
+       libgnat/s-traent.adb, libgnat/s-traent.ads,
+       libgnat/s-trasym.adb, libgnat/s-trasym.ads,
+       libgnat/s-trasym__dwarf.adb, opt.adb, opt.ads, par-prag.adb,
+       sem_prag.adb, snames.ads-tmpl, switch-c.adb, targparm.adb,
+       targparm.ads, usage.adb: Remove support for -gnatP and pragma
+       Polling.
+       * gnat_ugn.texi: Regenerate.
+       * libgnat/a-excpol.adb, libgnat/a-excpol__abort.adb: Removed.
+
+2020-10-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Array_Type_Declaration): Create itype with unique
+       name.
+
+2020-10-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Analyze_Object_Declaration): Limit scope of a
+       local object by hiding it from local subprograms; simplify
+       nested if-then-if-then condition for an Ada 83 restriction.
+       (Array_Type_Declaration): Confirm with assertion when the else
+       branch is executed.
+       (Find_Type_Of_Object): Simplify membership test with a subtype
+       range.
+
+2020-10-16  Yannick Moy  <moy@adacore.com>
+
+       * sem_prag.adb (Analyze_Global_In_Decl_Part): Update check to
+       reject volatile object for reading.
+       * sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Update
+       check to reject volatile object for reading.
+       * sem_util.adb, sem_util.ads
+       (Check_Nonvolatile_Function_Profile,
+       Has_Effectively_Volatile_Profile): Detect use of volatile object
+       for reading.
+       (Has_Enabled_Property): Accept constants as well.
+       (Is_Effectively_Volatile_For_Reading): New function based on
+       existing Is_Effectively_Volatile.
+       (Is_Effectively_Volatile_Object_For_Reading): Adapted from the
+       existing Is_Effectively_Volatile_Object, using a shared
+       implementation in Is_Effectively_Volatile_Object_Shared.
+
+2020-10-16  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch7.adb (Check_Unnesting_In_Decls_Or_Stmts): In the case
+       of an if-statement, call Unnest_If_Statement to determine
+       whether there are nested subprograms in any of the statement
+       lists of the "if" parts that require a wrapping procedure to
+       handle possible up-level refeferences.
+       (Unnest_Block): Call Check_Unnesting_In_Handlers to do unnesting
+       of subprograms in exception handlers of the block statement.
+       (Unnest_If_Statement): New procedure to traverse the parts of an
+       if-statement and create wrapper procedures as needed to
+       encapsulate nested subprograms that may make up-level
+       references.
+       (Check_Stmts_For_Subp_Unnesting): New support procedure in
+       Unnest_If_Statement to traverse a statement list looking for
+       top-level subprogram bodies that require wrapping inside a
+       procedure (via Unnest_Statement_List) as well as possibly having
+       other statements (block, loop, if) that may themselves require
+       an unnesting transformation (via
+       Check_Unnesting_In_Decls_Or_Stmts).
+       (Unnest_Statement_List): New support procedure to traverse the
+       statements of a statement list that contains subprogram bodies
+       at the top level and replace the statement list with a wrapper
+       procedure body encapsulating the statements and a call to the
+       procedure.
+
+2020-10-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_prag.adb (Check_OK_Stream_Convert_Function): Check for
+       abstract subprograms.
+
+2020-10-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
+       (No_Local_Timing_Events): Package Timing_Events is a child of
+       Ada.Real_Time, not of Ada.
+       * gnat_rm.texi: Regenerate.
+
+2020-10-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_attributes.rst: Document the
+       new Max_Integer_Size attribute.
+       * gnat_rm.texi: Regenerate.
+       * exp_attr.adb (Get_Integer_Type): Call Small_Integer_Type_For.
+       (Expand_N_Attribute_Reference) <Attribute_Pred>: Replace selection
+       code with call to Integer_Type_For.
+       <Attribute_Succ>: Likewise.
+       <Attribute_Val>: Likewise.
+       <Attribute_Valid>: Likewise.
+       <Attribute_Max_Integer_Size>: Raise Program_Error.
+       * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Replace selection
+       code with call to Integer_Type_For.
+       (Simple_Init_Initialize_Scalars_Type): Use Long_Long_Unsigned and
+       System_Max_Integer_Size to size the largest integer type.
+       * exp_pakd.adb (Compute_Linear_Subscript): Minor tweak.
+       (Create_Packed_Array_Impl_Type): Use Small_Integer_Type_For.
+       * exp_util.ads (Integer_Type_For): New function.
+       (Small_Integer_Type_For): Likewise.
+       * exp_util.adb (Adjust_Condition): Use Integer_Type_For.
+       (Component_May_Be_Bit_Aligned): Use System_Max_Integer_Size.
+       (Integer_Type_For): New function.
+       (Small_Integer_Type_For): Likewise.
+       (Matching_Standard_Type): Use Small_Integer_Type_For.
+       (Needs_Constant_Address): Replace 64 with System_Max_Integer_Size.
+       * freeze.adb (Set_Small_Size): Likewise.
+       (Size_Known): Likewise.
+       (Check_Suspicious_Modulus): Likewise.
+       (Check_Large_Modular_Array): Likewise.
+       (Freeze_Entity): Likewise.
+       * layout.adb (Layout_Type): Likewise.
+       * sem_aggr.adb: Add with and use clauses for Ttypes.
+       (Resolve_Aggregate): Replace 64 with System_Max_Integer_Size.
+       * sem_attr.ads (Attribute_Impl_Def): Add Attribute_Max_Integer_Size.
+       * sem_attr.adb (Analyze_Attribute) <Attribute_Max_Integer_Size>: New
+       (Eval_Attribute): Likewise.
+       * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Change max
+       scalar size to System_Max_Integer_Size.
+       (Check_Array_Type): Replace 64 with System_Max_Integer_Size and
+       remove superfluous test.
+       (OK_Component): Likewise.
+       * sem_ch5.adb: Add with and use clauses for Ttypes.
+       (Analyze_Assignment): Replace 64 with System_Max_Integer_Size.
+       * snames.ads-tmpl (Name_Max_Integer_Size): New attribute name.
+       (Attribute_Id): Add Attribute_Max_Integer_Size.
+       * ttypes.ads (System_Max_Integer_Size): New constant.
+
+2020-10-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch10.adb (Install_With_Clause): Fix implementation of Ada
+       2005 AI-262 by taking into account generic packages.  Minor
+       reformatting.
+       * libgnat/a-cbhase.ads, libgnat/a-cbhase.adb: Remove use clause
+       on runtime unit spec.
+
+2020-10-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * einfo.ads, einfo.adb (Scope_Depth_Value,
+       Set_Scope_Depth_Value): Add assertions on valid nodes and update
+       documentation accordingly.
+       (Write_Field22_Name): Sync with change in Scope_Depth_Value.
+       * sem_ch8.adb (Find_Direct_Name): Fix call to Scope_Depth_Value.
+
+2020-10-15  Javier Miranda  <miranda@adacore.com>
+
+       * sem_prag.adb (Analyze_Pragma): Adding semantic support of
+       Standard to Default_Storage_Pool.
+       * freeze.adb (Freeze_Entity): If pragma Default_Storage_Pool
+       applies and it is set to Standard then use the global pool as
+       the associated storage pool of the access type.
+
+2020-10-15  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch6.ads (Might_Have_Tasks): Update documentation.
+       * exp_ch6.adb (Might_Have_Tasks): Return also true when the type
+       has tasks.
+       (Make_Build_In_Place_Call_In_Allocator): Code cleanup.
+       * exp_ch3.adb (Ensure_Activation_Chain_And_Master,
+       Expand_N_Full_Type_Declaration, Expand_N_Object_Declaration):
+       Code cleanup.
+
+2020-10-15  Steve Baird  <baird@adacore.com>
+
+       * checks.adb (Apply_Predicate_Check): Generate "infinite
+       recursion" warning message even if run-time predicate checking
+       is disabled.
+       * exp_ch6.adb (Expand_Simple_Function_Return): In testing
+       whether the returned expression is a function call, look for the
+       case where the call has been transformed into a dereference of
+       an access value that designates the result of a function call.
+       * sem_ch3.adb (Analyze_Object_Declaration): Legality checking
+       for a static expression is unaffected by assertion policy (and,
+       in particular, enabling/disabling of subtype predicates.  To get
+       the right legality checking, we need to call
+       Check_Expression_Against_Static_Predicate for a static
+       expression even if predicate checking is disabled for the given
+       predicate-bearing subtype.  On the other hand, we don't want to
+       call Make_Predicate_Check unless predicate checking is enabled.
+       * sem_ch7.adb (Uninstall_Declarations.Preserve_Full_Attributes):
+       Preserve the Predicates_Ignored attribute.
+       * sem_eval.adb (Check_Expression_Against_Static_Predicate):
+       Previously callers ensured that this procedure was only called
+       if predicate checking was enabled; that is no longer the case,
+       so predicates-disabled case must be handled.
+       * sem_prag.adb (Analyze_Pragma): Fix bug in setting
+       Predicates_Ignored attribute in Predicate pragma case.
+
+2020-10-15  Ed Schonberg  <schonberg@adacore.com>
+
+       * freeze.adb (Freeze_Fixed_Point_Type): Do not scale the bounds
+       of a declared subtype using the 'Small of the type;  this is
+       done during resolution of the bound itself, unlike what is done
+       for the bounds of the base type, which are used to determine its
+       required size. Previous code performed this scaling twice,
+       leading to meaningless values for such a subtype.
+
+2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb (Bad_Predicated_Subtype_Use): Emit an
+       unconditional error, not a conditional warning.
+
+2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Process_Subtype): Combine guards for
+       Null_Exclusion_Present in May_Have_Null_Exclusion; use this
+       combined guard when checking AI-231.
+
+2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Process_Subtype): Sync May_Have_Null_Exclusion
+       with assertion in Null_Exclusion_Present; clarify the scope of
+       local variables.
+
+2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Analyze_Subtype_Declaration): Fix style.
+       (Make_Index): Refactor to avoid repeated detection of subtype
+       indication; add comment.
+
+2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Is_Acceptable_Dim3): Use Is_RTE to not pull CUDA
+       package unless necessary; rename local Tmp variable; iterate
+       with procedural Next.
+
+2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Array_Type_Declaration): Refine type of a local
+       variable.
+       (Make_Index): Simplify to avoid assignment with a type entity
+       and then backtracking by reassigning to Empty; remove excessive
+       whitespace.
+       * sem_ch9.adb (Analyze_Entry_Body): Remove extra parens.
+
+2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Access_Subprogram_Declaration): Remove extra
+       parens.
+       (Make_Index): Remove excessive calls to Is_Type.
+
+2020-10-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_util.adb (Enter_Name): Remove unnecessary conditions in
+       Enter_Name that come from the beginning of times.
+
+2020-10-15  Bob Duff  <duff@adacore.com>
+
+       * exp_ch6.adb (Expand_Simple_Function_Return): Remove DSP part
+       of comment, and reformat.
+
+2020-10-15  Boris Yakobowski  <yakobowski@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference): Do not expand
+       'Initialized in CodePeer mode.
+
+2020-10-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch12.adb (Reset_Entity): Protect against malformed tree.
+
+2020-10-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch13.adb (Add_Predicates): Prevent analyzing twice the
+       same pragma in case an inner package references the type with a
+       predicate (as opposed to defining the type).
+
+2020-10-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/a-cfinve.adb (Int): Use subtype of Long_Long_Integer.
+       * libgnat/a-cofove.adb (Int): Likewise.
+       * libgnat/a-cgcaso.adb (T): Likewise.
+       * libgnat/a-cogeso.adb (T): Likewise.
+       * libgnat/g-debpoo.ads (Byte_Count): Use Long_Long_Integer'Size.
+
+2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch12.adb: Replace list of N_Defining_... enumerations with
+       N_Entity.
+
+2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.ads, sem_ch3.adb (Make_Index): Refined type of
+       parameter.
+       (Constrain_Index): Likewise.
+       (Array_Type_Declaration): Refine type of a local counter
+       variable; remove a trivially useless initialization.
+
+2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Analyze_Subtype_Declaration): Recognize both
+       identifiers and expanded names; use high-level Is_Scalar_Type
+       instead of low-level membership test.
+
+2020-10-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_eval.adb (Eval_Intrinsic_Call, Fold_Shift): Add support
+       for Shift_Right_Arithmetic and for signed integers.
+       * exp_ch4.adb (Expand_N_Op_Rotate_Left,
+       Expand_N_Op_Rotate_Right, Expand_N_Op_Shift_Left,
+       Expand_N_Op_Shift_Right_Arithmetic): Minor reformatting and code
+       cleanup to ensure a consistent handling. Update comments and add
+       assertion.
+
+2020-10-15  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Visible_Component): Enable this code for task
+       and protected types, as well as record and private types.
+       * sem_ch13.ads (Replace_Type_References_Generic): Update
+       comment.  Move the efficiency comment into the body, because
+       it's about the implementation.
+
+2020-10-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * par-ch13.adb (Get_Aspect_Specifications): Generate a warning
+       rather than an error on unknown aspects unless -gnatd2 is used.
+       (Aspect_Specifications_Present): Improve detection of unknown
+       aspects.
+       * debug.adb (Debug_Flag_2): Update document.
+
+2020-10-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_res.adb (Resolve_Call): Do not try to inline intrinsic
+       calls.
+
+2020-10-15  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_aggr.adb (Expand_N_Aggregate): A record aggregate requires
+       a non-private type.
+       * sem_ch13.adb (Valid_Assign_Indexed): New subprogram local to
+       Resolve_Aspect_Aggregate, to handle the case when the
+       corresponding name appearing in the aspect specification for an
+       indexed aggregate is an overloaded operation.
+       * libgnat/a-convec.ads, libgnat/a-convec.adb,
+       libgnat/a-coinve.ads, libgnat/a-coinve.adb,
+       libgnat/a-cobove.ads, libgnat/a-cobove.adb,
+       libgnat/a-cdlili.ads, libgnat/a-cdlili.adb,
+       libgnat/a-cbdlli.ads, libgnat/a-cbdlli.adb,
+       libgnat/a-cohama.ads, libgnat/a-cihama.ads,
+       libgnat/a-cbhama.ads, libgnat/a-cborma.ads,
+       libgnat/a-ciorma.ads, libgnat/a-coorma.ads,
+       libgnat/a-cihase.ads, libgnat/a-cohase.ads,
+       libgnat/a-cbhase.ads, libgnat/a-cborse.ads,
+       libgnat/a-ciorse.ads, libgnat/a-coorse.ads: Add Ada_2020 aspect
+       Aggregate to types declared in standard containers, as well as
+       new subprograms where required.
+
+2020-10-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/g-arrspl.ads, libgnat/g-arrspl.adb (Create,
+       First_Cursor, Advance, Has_Element): New.
+
+2020-10-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * Makefile.rtl: Add target pair for interfac.ads.
+       * libgnat/interfac.ads: Add a comment.
+       * libgnat/interfac__2020.ads: New, used for bootstrap purposes.
+       * sem_util.adb (Is_Static_Function): Always return False for pre
+       Ada 2020 to e.g. ignore the Static aspect in Interfaces for
+       Ada < 2020.
+
+2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_util.adb (Remove_Side_Effects): Move special-casing for
+       GNATprove to be applied to all object declarations.
+
+2020-10-12  Alexandre Oliva  <oliva@adacore.com>
+
+       * libgnat/a-ngelfu.ads (Sin, Cos): Make the single-argument
+       functions inline.
+
+2020-10-11  Alexandre Oliva  <oliva@adacore.com>
+
+       * libgnat/a-numaux.ads: Make all imports Intrinsic.
+       * libgnat/a-numaux__darwin.ads: Likewise.
+       * libgnat/a-numaux__libc-x86.ads: Likewise.
+       * libgnat/a-numaux__vxworks.ads: Likewise.
+
+2020-09-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the end locus
+       of body and declaration earlier.
+
+2020-09-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (maybe_saturate_size): Add ALIGN parameter
+       and round down the result to ALIGN.
+       (gnat_to_gnu_entity): Adjust calls to maybe_saturate_size.
+
+2020-09-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * gcc-interface/trans.c (gigi): Adjust build_optimization_node
+       caller.
+
+2020-09-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fe.h: Fix pilot error in previous change.
+       * gcc-interface/gigi.h (enum standard_datatypes): Add ADT_mulv128_decl.
+       (mulv128_decl): New macro.
+       (get_target_long_long_long_size): Declare.
+       * gcc-interface/decl.c (gnat_to_gnu_entity): Use a maximum size of
+       128 bits for discrete types if Enable_128bit_Types is true.
+       * gcc-interface/targtyps.c: Include target.h.
+       (get_target_long_long_long_size): New function.
+       * gcc-interface/trans.c (gigi): Initialize mulv128_decl if need be.
+       (build_binary_op_trapv): Call it for 128-bit multiplication.
+       * gcc-interface/utils.c (make_type_from_size): Enforce a maximum
+       size of 128 bits if Enable_128bit_Types is true.
+
+2020-09-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (lvalue_for_aggr_p) <N_Object_Declaration>:
+       Return false unconditionally.
+
+2020-09-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (gnat_to_gnu) <N_Object_Declaration>: Clear
+       the SLOC of the expression of a tag.
+
+2020-09-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Only give
+       a warning for the overlay of an aliased array with an unconstrained
+       nominal subtype if the address is absolute.
+
+2020-09-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils.c (type_has_variable_size): New function.
+       (create_field_decl): In the packed case, also force byte alignment
+       when the type of the field has variable size.
+
+2020-09-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/misc.c (get_array_bit_stride): Return TYPE_ADA_SIZE
+       for record and union types.
+
+2020-09-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/misc.c (gnat_get_fixed_point_type): Bail out only
+       when the GNAT encodings are specifically used.
+
+2020-09-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Only
+       create extra subtypes for discriminants if the RM size of the base
+       type of the index type is lower than that of the index type.
+
+2020-09-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (set_rm_size): Do not take into account the
+       Value_Size clause if it is not for the entity itself.
+
+2020-09-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (build_subst_list): For a definition, make
+       sure to instantiate the SAVE_EXPRs generated by the elaboration of
+       the constraints in front of the elaboration of the type itself.
+
+2020-09-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/misc.c: Include tree-pass.h.
+       (internal_error_function): Call emergency_dump_function.
+
+2020-09-03  Arnaud Charlet  <charlet@adacore.com>
+
+       * fe.h, opt.ads (Enable_128bit_Types): New.
+       * stand.ads (Standard_Long_Long_Long_Integer,
+       S_Long_Long_Long_Integer): New.
+
+2020-09-03  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_util.ads, sem_util.adb (Get_Fullest_View): New procedure.
+       * exp_unst.adb (Check Static_Type): Do all processing on fullest
+       view of specified type.
+
+2020-08-27  Martin Liska  <mliska@suse.cz>
+
+       * gcc-interface/trans.c (gigi): Set exact argument of a vector
+       growth function to true.
+       (Attribute_to_gnu): Likewise.
+
+2020-07-27  Alexandre Oliva  <oliva@adacore.com>
+
+       * switch.adb (Is_Internal_GCC_Switch): Revert accidental
+       reintroduction of auxbase and auxbase-strip.
+
+2020-07-27  Javier Miranda  <miranda@adacore.com>
+
+       * sem_res.adb (Resolve_Actuals): Restrict the check on matching
+       aliased components to view conversions of array types that are
+       not placed in an instance. In such case at runtime an object is
+       created.
+       * sem_util.ads (Is_Actual_In_Out_Parameter, Is_View_Conversion):
+       New subprograms.
+       * sem_util.adb (Is_Actual_In_Out_Parameter, Is_View_Conversion):
+       New subprograms.
+
+2020-07-27  Arnaud Charlet  <charlet@adacore.com>
+
+       * lib-xref.adb (Generate_Reference): Protect against malformed
+       tree in case of severe errors.
+       * sem_ch8.adb (Add_Implicit_Operator): Ditto.
+
+2020-07-27  Arnaud Charlet  <charlet@adacore.com>
+
+       * opt.ads (Ada_Version_Runtime): Set to Ada_2020.
+       * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate
+       Is_Independent flag to subtypes.
+       * libgnarl/s-taprop__linux.adb: Adapt to Ada 2020 warning.
+       * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
+       libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
+       libgnat/a-nbnbre.ads, libgnat/a-stobbu.adb,
+       libgnat/a-stobbu.ads, libgnat/a-stobfi.adb,
+       libgnat/a-stobfi.ads, libgnat/a-stoubu.adb,
+       libgnat/a-stoubu.ads, libgnat/a-stoufi.adb,
+       libgnat/a-stoufi.ads, libgnat/a-stoufo.adb,
+       libgnat/a-stoufo.ads, libgnat/a-stouut.adb,
+       libgnat/a-stouut.ads, libgnat/a-strsto.ads,
+       libgnat/a-ststbo.adb, libgnat/a-ststbo.ads,
+       libgnat/a-ststun.adb, libgnat/a-ststun.ads,
+       libgnat/a-stteou.ads, libgnat/s-aoinar.ads,
+       libgnat/s-aomoar.ads, libgnat/s-atopex.ads,
+       libgnat/s-putaim.adb, libgnat/s-putaim.ads,
+       libgnat/s-putima.adb, libgnat/s-putima.ads: Remove pragma
+       Ada_2020, now redundant.
+
+2020-07-27  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch6.adb (Expand_Call_Helper): Modify addition of the extra
+       accessibility parameter to take into account the extra
+       accessibility of formals within the calling subprogram.
+
+2020-07-27  Bob Duff  <duff@adacore.com>
+
+       * exp_imgv.adb (Expand_Image_Attribute): Add Root_Type, so
+       constrained subtypes work.
+
+2020-07-27  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * exp_prag.adb (Arg1, Arg2, Arg3): Removed.
+       (Arg_N): New function.
+
+2020-07-27  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch8.adb (Analyze_Object_Renaming): Allow values in Ada
+       2020 mode.
+
+2020-07-27  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_res.adb (Resolve_Actuals): Refine 6.4.1 rules as per
+       AI12-0377.
+
+2020-07-27  Bob Duff  <duff@adacore.com>
+
+       * errout.ads, errout.adb (Error_Msg_Ada_2020_Feature): New
+       procedure analogous to Error_Msg_Ada_2012_Feature.
+       * sem_attr.adb (Analyze_Image_Attribute): Use
+       Error_Msg_Ada_2012_Feature and Error_Msg_Ada_2020_Feature to
+       indicate that Object'Image is allowed in Ada 2012, and that
+       'Image is allowed for any type in Ada 2020.
+
+2020-07-27  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * libgnat/a-strunb.adb (Sum, Mul, Saturated_Sum, Saturated_Mul):
+       New routines.  Use them when resulting string size more that
+       length of the strings in parameters.
+       (Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side
+       of condition to avoid overflow.
+       * libgnat/a-strunb__shared.adb (Sum, Mul): New routines.
+       (Allocate): New routine with 2 parameters.  Use routine above
+       when resulting string size more that length of the strings in
+       parameters.
+       (Aligned_Max_Length): Do not try to align to more than Natural'Last.
+       (Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side
+       of condition to avoid overflow.
+
+2020-07-27  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_attr.adb (Resolve_Attribute): Remove dead code.
+
+2020-07-27  Arnaud Charlet  <charlet@adacore.com>
+
+       * aspects.adb, atree.adb, atree.ads, checks.adb, contracts.adb,
+       einfo.adb, errout.adb, exp_aggr.adb, exp_attr.adb, exp_cg.adb,
+       exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb,
+       exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb,
+       exp_dbug.adb, exp_disp.adb, exp_intr.adb, exp_pakd.adb,
+       exp_prag.adb, exp_put_image.adb, exp_smem.adb, exp_tss.adb,
+       exp_unst.adb, exp_util.adb, freeze.adb, ghost.adb, gnat1drv.adb,
+       inline.adb, lib-writ.adb, lib-xref-spark_specific.adb,
+       lib-xref.adb, namet.adb, namet.ads, nlists.adb, par-ch10.adb,
+       par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
+       par-prag.adb, par-util.adb, par_sco.adb, pprint.adb,
+       repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, sem.adb,
+       sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb,
+       sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb,
+       sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb,
+       sem_ch8.adb, sem_ch9.adb, sem_dim.adb, sem_disp.adb,
+       sem_dist.adb, sem_elab.adb, sem_elim.adb, sem_eval.adb,
+       sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
+       sem_scil.adb, sem_type.adb, sem_util.adb, sem_warn.adb,
+       sinfo.adb, sinfo.ads, sprint.adb, styleg.adb, tbuild.adb,
+       treepr.adb (Nkind_In, Nam_In, Ekind_In): Removed, replaced by
+       membership tests.
+
+2020-07-27  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_prag.adb (Analyze_Pragma, Pragma_Max_Entry_Queue_Length):
+       Refine error message to indicate that the pragma must apply to
+       an entry declaration, not just an entry.
+
+2020-07-27  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator):
+       Revert previous patch, and add a missing type conversion to
+       displace the pointer to the allocated object to reference the
+       target dispatch table.
+
+2020-07-27  Javier Miranda  <miranda@adacore.com>
+
+       * sem_res.adb (Resolve_Actuals): Restore restrictive check on
+       view conversions which required matching value of
+       Has_Aliased_Components of formals and actuals. Required to avoid
+       the regression of ACATS b460005.
+
+2020-07-27  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch12.adb (Instantiate_Package_Body): Add commentary for a
+       nesting issue with parent handling and private view switching.
+       (Switch_View): Do not skip specific private-dependent subtypes.
+
+2020-07-27  Patrick Bernardi  <bernardi@adacore.com>
+
+       * Makefile.rtl: Remove X86_TARGET_PAIRS for x86-lynx178elf.
+
+2020-07-27  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch13.adb (Analyze_Address_Specification_Clause): Do not
+       emit a warning when a constant declaration in a generic unit
+       overlays a generic In_Parameter.
+
+2020-07-27  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch3.adb (Check_Abstract_Overriding): Remove Scope
+       comparison test from test related to initial implementation of
+       AI12-0042, plus remove the related ??? comment.
+       (Derive_Subprogram): Add test requiring that the type extension
+       appear in the visible part of its enclosing package when
+       checking the overriding requirement of 7.3.2(6.1/4), as
+       clarified by AI12-0382.
+
+2020-07-27  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_N_Attribute_Reference) Extend
+       existing workaround to 'Pos.
+
+2020-07-27  Bob Duff  <duff@adacore.com>
+
+       * libgnat/s-rannum.ads, libgnat/s-rannum.adb: Add Put_Image.
+       This will be inherited by the language-defined packages
+       Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random.
+       * libgnat/a-convec.ads, libgnat/a-convec.adb: Add Put_Image.
+       * libgnat/s-putima.ads: Add pragma Preelaborate, so this can be
+       imported into containers packages.
+       * libgnat/s-putima.adb: Move Digit to private part; otherwise
+       reference to Base is illegal in Preelaborate generic.
+       * exp_put_image.adb (Build_Record_Put_Image_Procedure): Use the
+       base type.
+
+2020-07-23  Arnaud Charlet  <charlet@adacore.com>
+
+       * aspects.ads: Declare CUDA_Global as aspect.
+       * einfo.ads: Use Flag118 for the Is_CUDA_Kernel flag.
+       (Set_Is_CUDA_Kernel): New function.
+       (Is_CUDA_Kernel): New function.
+       * einfo.adb (Set_Is_CUDA_Kernel): New function.
+       (Is_CUDA_Kernel): New function.
+       * par-prag.adb (Prag): Ignore Pragma_CUDA_Execute and
+       Pragma_CUDA_global.
+       * rtsfind.ads: Define CUDA.Driver_Types.Stream_T and
+       CUDA.Vector_Types.Dim3 entities
+       * rtsfind.adb: Define CUDA_Descendant subtype.
+       (Get_Unit_Name): Handle CUDA_Descendant packages.
+       * sem_prag.ads: Mark CUDA_Global as aspect-specifying pragma.
+       * sem_prag.adb (Analyze_Pragma): Validate Pragma_CUDA_Execute and
+       Pragma_CUDA_Global.
+       * snames.ads-tmpl: Define Name_CUDA_Execute and Name_CUDA_Global.
+
+2020-07-23  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch13.ads (Same_Representation): Renamed as
+       Has_Compatible_Representation because now the order of the arguments
+       are taken into account; its formals are also renamed as Target_Type
+       and Operand_Type.
+       * sem_ch13.adb (Same_Representation): Renamed and moved to place the
+       routine in alphabetic order.
+       * sem_attr.adb (Prefix_With_Safe_Accessibility_Level): New subprogram.
+       (Resolve_Attribute): Check that the prefix of attribute Access
+       does not have a value conversion of an array type.
+       * sem_res.adb (Resolve_Actuals): Remove restrictive check on view
+       conversions which required matching value of Has_Aliased_Components of
+       formals and actuals.
+       * exp_ch4.adb (Handle_Changed_Representation): Update call to
+       Same_Representation.
+       (Expand_N_Type_Conversion): Update call to Same_Representation.
+       * exp_ch5.adb (Change_Of_Representation): Update call to
+       Same_Representation.
+       * exp_ch6.adb (Add_Call_By_Copy_Code): Update call to
+       Same_Representation.
+       (Expand_Actuals): Update call to Same_Representation.
+       (Expand_Call_Helper): Update call to Same_Representation.
+
+2020-07-23  Arnaud Charlet  <charlet@adacore.com>
+
+       * output.ads (Push_Output, Pop_Output): New procedures.
+       * output.adb (FD_Array, FD_Stack, FD_Stack_Idx): New type and vars.
+       (Push_Output, Pop_Output): New procedures.
+
+2020-07-16  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch3.adb (Expand_N_Full_Type_Declaration): Ensure a _master
+       declaration on limited types that might have tasks.
+       * exp_ch9.adb (Build_Master_Renaming): For private types, if we
+       are processing declarations in the private part, ensure that
+       master is inserted before its full declaration; otherwise the
+       master renaming may be inserted in the public part of the
+       package (and hence before the declaration of its _master
+       variable).
+
+2020-07-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch8.adb (Analyze_Subprogram_Renaming): A renames-as-body
+       freezes the expression of any expression function that it
+       renames.
+
+2020-07-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_aggr.adb (Resolve_Container_Aggregate): Add semantic
+       checks for indexed aggregates, including component associations
+       and iterated component associations.
+       * exp_aggr.adb (Expand_Iterated_Component): New subprogram,
+       subsidiary of Expand_Container_Aggreggate, used for positional,
+       named, and indexed aggregates.
+       (Aggregate_Size): New subprogram to precompute the size of an
+       indexed aggregate prior to call to allocate it.
+       (Expand_Range_Component): New subprogram so generate loop for a
+       component association given by a range or a subtype name in an
+       indexed aggregate.
+
+2020-07-16  Bob Duff  <duff@adacore.com>
+
+       * bindo-diagnostics.adb (Output_Invocation_Related_Suggestions):
+       Use Cumulative_Restrictions.Set, because Restriction_Active only
+       works at compile time.
+
+2020-07-16  Bob Duff  <duff@adacore.com>
+
+       * gnatbind.adb (Gnatbind): For No_Tasks_Unassigned_To_CPU, check
+       that CPU has been set on the main subprogram.
+       (Restriction_Could_Be_Set): Don't print
+       No_Tasks_Unassigned_To_CPU if it would violate the
+       above-mentioned rule. Up to now, all restrictions were checked
+       by the compiler, with the binder just checking for consistency.
+       But the compiler can't know which subprogram is the main, so
+       it's impossible to check this one at compile time.
+       * restrict.ads, restrict.adb: Misc refactoring. Change Warning
+       to Warn, for consistency, since most already use Warn.
+       (Set_Restriction): New convenience routine.
+       * sem_ch13.adb (Attribute_CPU): Check
+       No_Tasks_Unassigned_To_CPU.
+       * sem_prag.adb (Pragma_CPU): Check No_Tasks_Unassigned_To_CPU.
+       Misc refactoring.
+       * tbuild.ads, tbuild.adb (Sel_Comp): New functions for building
+       selected components.
+
+2020-07-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * impunit.adb (Non_Imp_File_Names_95): Remove duplicate entry.
+
+2020-07-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * Makefile.rtl: replace a-numaux__x86.ads by
+       a-numaux__libc-x86.ads and a-numaux__x86.adb by
+       a-numaux__dummy.adb.
+       * libgnat/a-numaux__x86.ads, libgnat/a-numaux__x86.adb: Removed.
+       * libgnat/a-numaux__dummy.adb: New.
+
+2020-07-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch12.adb (Load_Parent_Of_Generic): If an ancestor is an
+       instance whose source appears within a formal package of the
+       current unit, there is no body of the ancestor needed to
+       complete the current generic compilation.
+
+2020-07-16  Doug Rupp  <rupp@adacore.com>
+
+       * libgnat/s-thread__ae653.adb (taskVarAdd): Defunct, so remove.
+       (Current_ATSD):  Make it a TLS variable.
+       (OK): Move to package scope.
+       (System.Storage_Elements): Import and Use.
+
+2020-07-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch9.adb (Expand_N_Accept_Statement): Set Parent of the
+       created block entity to the created block statement.
+
+2020-07-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * scng.adb (Scan): Detect wide characters not in NFKC.
+       * libgnat/a-chahan.adb, libgnat/a-chahan.ads,
+       libgnat/a-wichha.adb, libgnat/a-wichha.ads,
+       libgnat/a-wichun.adb, libgnat/a-wichun.ads,
+       libgnat/a-zchhan.adb, libgnat/a-zchhan.ads,
+       libgnat/a-zchuni.adb, libgnat/a-zchuni.ads (Is_NFKC): New.
+       * libgnat/s-utf_32.ads, libgnat/s-utf_32.adb (Is_UTF_32_NFKC):
+       New.
+
+2020-07-16  Bob Duff  <duff@adacore.com>
+
+       * libgnat/s-rident.ads (Restriction_Id): Add
+       No_Tasks_Unassigned_To_CPU.
+
+2020-07-16  Bob Duff  <duff@adacore.com>
+
+       * exp_aggr.adb (Max_Aggregate_Size): Use the small size of 64
+       when copying is needed (for example, for the initialization of a
+       local variable, and for assignment statements). Use the larger
+       size when static allocation can be done without copying.
+
+2020-07-16  Bob Duff  <duff@adacore.com>
+
+       * libgnat/s-rident.ads (No_Dynamic_CPU_Assignment): New
+       restriction. Add it to all relevant profiles.
+       * sem_ch13.adb (Attribute_CPU): Check No_Dynamic_CPU_Assignment
+       restriction.
+       (Attribute_CPU, Attribute_Dispatching_Domain,
+       Attribute_Interrupt_Priority): Remove error checks -- these are
+       checked in the parser.
+       * sem_prag.adb (Pragma_CPU): Check No_Dynamic_CPU_Assignment
+       restriction.  We've got a little violation of DRY here.
+       * sem.ads, sem_ch3.ads: Minor comment fix.
+
+2020-07-16  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch4.adb (Try_Container_Indexing): When the prefix type is
+       an access type, change it to the designated type, change the
+       prefix to an explicit dereference, and emit a ?d? warning for
+       the implicit dereference. Include a ??? comment questioning
+       whether this is the right context in which to perform the
+       implicit dereferencing.
+
+2020-07-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch13.adb (Validate_Literal_Aspect): Ensure that the
+       parameter is not aliased. Minor reformatting.
+       * sem_util.adb (Statically_Names_Object): Update comment.
+
+2020-07-16  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_case.adb (Build_Choice): Set Is_Static_Expression flag.
+       (Lit_Of): Update specification to mention Is_Static_Expression
+       flag.
+       * sem_ch13.adb (Membership_Entry): Check for N_Others_Choice.
+
+2020-07-16  Bob Duff  <duff@adacore.com>
+
+       * sem_ch6.adb (Null_Exclusions_Match): New function to check
+       that the null exclusions match, including in the case addressed
+       by this AI.
+       (Check_Conformance): Remove calls to Comes_From_Source
+       when calling Null_Exclusions_Match. These are not
+       needed, as indicated by an ancient "???" comment.
+
+2020-07-16  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch4.adb (Expand_N_Type_Conversion): Remove flawed test for
+       whether "statically deeper" accessibility rules apply to a given
+       target type and instead use the new routine
+       Statically_Deeper_Relation_Applies.
+       (Statically_Deeper_Relation_Applies): Created to centralize the
+       calculation of whether a target type within a conversion must
+       have static accessibility checks.
+       * sem_ch13.adb (Check_One_Function): Minor comment revision.
+
+2020-07-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fe.h (Is_OK_Static_Expression): Delete.
+       * sem_eval.ads (Is_OK_Static_Expression): Remove WARNING note.
+
+2020-07-16  Justin Squirek  <squirek@adacore.com>
+
+       * einfo.adb, einfo.ads (Is_Named_Access_Type): Created for
+       readability.
+       * sem_ch6.adb (Check_Return_Construct_Accessibility): Add
+       special cases for formals.
+       * sem_util.adb (Object_Access_Level): Add handling of access
+       attributes and named access types in the general case.
+
+2020-07-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_case.adb (Build_Choice): Simplify.
+
+2020-07-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * frontend.adb: Disable Initialize_Scalars on runtime files.
+
+2020-07-16  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_ch3.adb (Analyze_Object_Declaration): Add
+       Comes_From_Source call.
+
+2020-07-16  Javier Miranda  <miranda@adacore.com>
+
+       * exp_attr.adb (Expand_Access_To_Protected_Op): Initialize
+       variable Sub to Empty to avoid false positive reported by
+       Codepeer.
+
+2020-07-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch8.adb (Note_Redundant_Use): Add missing warning tag.
+       Do not check for redundant use clauses in predefined units to avoid
+       misleading warnings that may occur as part of a rtsfind load.
+
+2020-07-16  Javier Miranda  <miranda@adacore.com>
+
+       * exp_attr.adb (Has_By_Protected_Procedure_Prefixed_View): New
+       subprogram.
+       (Expand_Access_To_Protected_Op): Adding support for prefixed
+       class-wide view with By_Protected_Procedure convention.
+       * sem_attr.adb (Get_Convention): New subprogram.
+       (Get_Kind): Adapted to use Get_Convention.
+       * sem_ch4.adb (Try_By_Protected_Procedure_Prefixed_View): New
+       subprogram.
+       (Analyze_Selected_Component): Invoke
+       Try_By_Protected_Procedure_Prefixed_View.
+       * sem_util.ads (Is_By_Protected_Procedure): New subprogram.
+       * sem_util.adb (Is_By_Protected_Procedure): New subprogram.
+
+2020-07-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/s-ststop.ads: Fix typo.
+       * libgnat/s-ststop.adb (Read, Write): Fix block number
+       computation to avoid overflows in case of large strings.
+
+2020-07-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/s-genbig.adb ("**"): Remove capacity limit check.
+       Improve code by using an extended return.
+       (Normalize): Perform capacity limit check here instead which is
+       the centralized place where (potentially large) big integers are
+       allocated.
+
+2020-07-16  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch4.adb (Expand_N_Type_Conversion): Handle the case of
+       applying an invariant check for a conversion to a class-wide
+       type whose root type has a type invariant, when the conversion
+       appears within the immediate scope of the type and the
+       expression is of a specific tagged type.
+       * sem_ch3.adb (Is_Private_Primitive): New function to determine
+       whether a primitive subprogram is a private operation.
+       (Check_Abstract_Overriding): Enforce the restriction imposed by
+       AI12-0042 of requiring overriding of an inherited nonabstract
+       private operation when the ancestor has a class-wide type
+       invariant and the ancestor's private operation is visible.
+       (Derive_Subprogram): Set Requires_Overriding on a subprogram
+       inherited from a visible private operation of an ancestor to
+       which a Type_Invariant'Class expression applies.
+
+2020-07-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb (Find_Overlaid_Entity): Fix style in comment.
+       (Note_Possible_Modification): Simplify repeated calls to Ekind.
+
+2020-07-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_aggr.adb (Flatten): Adjust description.
+       (Convert_To_Positional): Remove obsolete ??? comment and use
+       Compile_Time_Known_Value in the final test.
+
+2020-07-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * par-ch4.adb (P_Iterated_Component_Association): Extended to
+       recognzize the similar Iterated_Element_Association. This node
+       is only generated when an explicit Key_Expression is given.
+       Otherwise the distinction between the two iterated forms is done
+       during semantic analysis.
+       * sinfo.ads: New node N_Iterated_Element_Association, for
+       Ada202x container aggregates.  New field Key_Expression.
+       * sinfo.adb: Subprograms for new node and newn field.
+       * sem_aggr.adb (Resolve_Iterated_Component_Association): Handle
+       the case where the Iteration_Scheme is an
+       Iterator_Specification.
+       * exp_aggr.adb (Wxpand_Iterated_Component): Handle a component
+       with an Iterated_Component_Association, generate proper loop
+       using given Iterator_Specification.
+       * exp_util.adb (Insert_Axtions): Handle new node as other
+       aggregate components.
+       * sem.adb, sprint.adb: Handle new node.
+       * tbuild.adb (Make_Implicit_Loop_Statement): Handle properly a
+       loop with an Iterator_ specification.
+
+2020-07-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/s-stposu.adb (Allocate_Any_Controlled): Fix logic in
+       lock/unlock.
+
+2020-07-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb (Is_Object_Reference): Return True on
+       N_Target_Name.
+
+2020-07-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Add proper
+       handling of Aspect_Predicate_Failure, consistent with
+       Check_Aspect_At_Freeze_Point.
+
+2020-07-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch13.adb (Check_Aspect_Too_Late): Mention -gnat2020 switch
+       in error message.
+
+2020-07-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo.ads (Delayed Freezing and Elaboration): Adjust description.
+       * freeze.adb (Freeze_Object_Declaration): Likewise.
+       * sem_ch3.adb (Delayed_Aspect_Present): Likewise.  Do not return
+       true for Alignment.
+       * sem_ch13.adb (Analyze_Aspect_Specifications): Do not always delay
+       for Alignment.  Moreover, for Alignment and various Size aspects,
+       do not delay if the expression is an attribute whose prefix is the
+       Standard package.
+
+2020-07-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch6.adb (Requires_Atomic_Or_Volatile_Copy): Return false
+       inside an initialization procedure.
+
+2020-07-15  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_util.adb (Is_Renaming): Add ekind checks.
+
+2020-07-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * doc/gnat_ugn/gnat_utility_programs.rst: Remove doc on obsolete
+       tools.
+       * gnat_ugn.texi: Regenerate.
+
+2020-07-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_res.adb (Resolve_Type_Conversion): Protect against null
+       entity.  Add proper tag for -gnatwr warning.
+
+2020-07-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch6.adb (Analyze_Procedure_Call): Detect use of operators
+       in a procedure call.
+       * sem_util.adb: Minor edit.
+
+2020-07-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Apply scalar
+       range checks against the base type of an index type, not against
+       the index type itself.
+
+2020-07-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo.ads (Delayed Freezing and Elaboration): Minor tweaks.
+       Document the discrepancy between the aspect and the non-aspect
+       cases for alignment settings in object declarations.
+
+2020-07-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch3.adb (Freeze_Type): Remove warning in expander,
+       replaced by a corresponding error in sem_ch13.adb. Replace
+       RTE_Available by RTU_Loaded to avoid adding unnecessary
+       dependencies.
+       * sem_ch13.adb (Associate_Storage_Pool): New procedure.
+       (Analyze_Attribute_Definition_Clause
+       [Attribute_Simple_Storage_Pool| Attribute_Storage_Pool]): Call
+       Associate_Storage_Pool to add proper legality checks on
+       subpools.
+
+2020-07-15  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
+       libgnat/a-cbhama.adb, libgnat/a-cbhama.ads,
+       libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
+       libgnat/a-cbmutr.adb, libgnat/a-cbmutr.ads,
+       libgnat/a-cborma.adb, libgnat/a-cborma.ads,
+       libgnat/a-cborse.adb, libgnat/a-cborse.ads,
+       libgnat/a-cbprqu.adb, libgnat/a-cbprqu.ads,
+       libgnat/a-cbsyqu.adb, libgnat/a-cbsyqu.ads,
+       libgnat/a-cdlili.adb, libgnat/a-cdlili.ads,
+       libgnat/a-cidlli.adb, libgnat/a-cidlli.ads,
+       libgnat/a-cihama.adb, libgnat/a-cihama.ads,
+       libgnat/a-cihase.adb, libgnat/a-cihase.ads,
+       libgnat/a-cimutr.adb, libgnat/a-cimutr.ads,
+       libgnat/a-ciorma.adb, libgnat/a-ciorma.ads,
+       libgnat/a-ciormu.adb, libgnat/a-ciormu.ads,
+       libgnat/a-ciorse.adb, libgnat/a-ciorse.ads,
+       libgnat/a-cohama.adb, libgnat/a-cohama.ads,
+       libgnat/a-cohase.adb, libgnat/a-cohase.ads,
+       libgnat/a-coinve.adb, libgnat/a-coinve.ads,
+       libgnat/a-comutr.adb, libgnat/a-comutr.ads,
+       libgnat/a-convec.adb, libgnat/a-convec.ads,
+       libgnat/a-coorma.adb, libgnat/a-coorma.ads,
+       libgnat/a-coormu.adb, libgnat/a-coormu.ads,
+       libgnat/a-coorse.adb, libgnat/a-coorse.ads: Add SPARK_Mode =>
+       Off.
+
+2020-07-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch3.adb (Delayed_Aspect_Present): Fix oversight in loop.
+       * freeze.adb (Freeze_Object_Declaration): Use Declaration_Node
+       instead of Parent for the sake of consistency.
+
+2020-07-15  Javier Miranda  <miranda@adacore.com>
+
+       * sem_attr.adb (Resolve_Attribute): Resolve overloaded
+       N_Selected_Component prefix of 'Access. Required to handle
+       overloaded prefixed view of protected subprograms.
+
+2020-07-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * doc/gnat_ugn/about_this_guide.rst: Remove old section and
+       update for Ada 202x.
+       * doc/gnat_ugn/getting_started_with_gnat.rst: Add a system
+       requirements section. Remove obsolete section and minimal
+       rewording on the getting started section.
+       * gnat_ugn.texi: Regenerate.
+
+2020-07-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch5.adb (Expand_Assign_Array): Use short-circuit operator
+       (style).
+       * sem_res.adb (Resolve_Indexed_Component): Fix style in comment.
+       * sem_util.adb (Is_Effectively_Volatile_Object): Handle slices
+       just like indexed components; handle qualified expressions and
+       type conversions lie in Is_OK_Volatile_Context.
+       (Is_OK_Volatile_Context): Handle qualified expressions just like
+       type conversions.
+
+2020-07-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Atomic_Components): Simplify with Ekind_In.
+       (Complex_Representation): Fix type of E_Id, which just like when
+       for pragma Atomic_Components will hold an N_Identifier node, not
+       an entity.
+       * sem_util.adb (Is_Effectively_Volatile): Refactor to avoid
+       unnecessary computation.
+
+2020-07-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * inline.adb, inline.ads
+       (Inline_Static_Expression_Function_Call): Renamed
+       Inline_Static_Function_Call.
+       * sem_ch13.adb (Analyze_Aspect_Static): Allow static intrinsic
+       imported functions under -gnatX.
+       * sem_util.ads, sem_util.adb (Is_Static_Expression_Function):
+       Renamed Is_Static_Function.
+       (Is_Static_Expression_Function_Call): Renamed
+       Is_Static_Function_Call.
+       * sem_ch6.adb, sem_elab.adb, sem_res.adb: Update calls to
+       Is_Static_Function*.
+       * sem_eval.adb (Fold_Dummy, Eval_Intrinsic_Call, Fold_Shift):
+       New.
+       (Eval_Call): Add support for intrinsic calls, code refactoring.
+       (Eval_Entity_Name): Code refactoring.
+       (Eval_Logical_Op): Update comment.
+       (Eval_Shift): Call Fold_Shift. Update comments.
+       * par-prag.adb (Par [Pragma_Extensions_Allowed]): Set
+       Ada_Version to Ada_Version_Type'Last to handle
+       Extensions_Allowed (On) consistently.
+       * opt.ads (Extensions_Allowed): Update documentation.
+       * sem_attr.adb: Update comment.
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Update
+       documentation of Extensions_Allowed.
+       * gnat_rm.texi: Regenerate.
+
+2020-07-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_aggr.adb (Resolve_Iterated_Component_Association): Ensure
+       Typ is never accessed uninitialized.
+
+2020-07-15  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/representation_clauses_and_pragmas.rst: Fix typo.
+       * gnat_rm.texi: Regenerate.
+       * libgnat/s-secsta.ads (Memory_Alignment): Likewise.
+
+2020-07-15  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch6.adb: Add a comma and fix a typo (machinary =>
+       machinery) in comment.
+       * exp_aggr.adb: Reformat, fix capitalization, and add a couple
+       of commas in a comment. Adjust columns in several code
+       fragments.
+       * sem_aggr.adb: Reformat and add a comma in a comment.
+
+2020-07-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch9.adb (Expand_N_Timed_Entry_Call): Use the Sloc of
+       the delay statement in the expansion.
+
+2020-07-15  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_aggr.adb (Resolve_Iterated_Component_Association): New
+       procedure, internal to Resolve_Container_Aggregate, to complete
+       semantic analysis of Iterated_Component_Associations.
+       * exp_aggr.adb (Expand_Iterated_Component): New procedure,
+       internal to Expand_Container_Aggregate, to expand the construct
+       into an implicit loop that performs individual insertions into
+       the target aggregate.
+
+2020-07-15  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch6.adb (Make_Build_In_Place_Call_Allocator): Normalize
+       the associated node for internally generated objects to be like
+       their SOAAT counter-parts.
+
+2020-07-15  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/g-socket.adb (Wait_On_Socket): Fix potentially
+       uninitialized variable.
+
+2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch8.adb (Find_Direct_Name): Fix code to match the comment.
+
+2020-07-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Address>:
+       Issue an unconditional warning for an overlay that changes the
+       scalar storage order.
+
+2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch8.adb (Is_Actual_Parameter): Fix processing when parent
+       is a procedure call statement; extend comment.
+
+2020-07-10  Bob Duff  <duff@adacore.com>
+
+       * sem_res.adb (Resolve_Expression_With_Actions): Check the rules
+       of AI12-0368, and mark the declare expression as static or known
+       at compile time as appropriate.
+       * sem_ch4.adb: Minor reformatting.
+       * libgnat/a-stoufo.ads, libgnat/a-stoufo.adb: Allow up to 9
+       replacement parameters. I'm planning to use this in the test
+       case for this ticket.
+
+2020-07-10  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Create a
+       proper signature when the access type denotes a parameterless
+       subprogram.
+       * exp_ch6.adb (Expand_Call): Handle properly a  parameterless
+       indirect call when the corresponding access type has contracts.
+
+2020-07-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_aggr.adb
+       (Convert_To_Positional): Add Dims local variable
+       and pass it in calls to Is_Flat and Flatten.
+       (Check_Static_Components): Pass Dims in call to
+       Is_Static_Element.
+       (Nonflattenable_Next_Aggr): New predicate.
+       (Flatten): Add Dims parameter and Expr local variable.  Call
+       Nonflattenable_Next_Aggr in a couple of places.  In the case
+       when an Others choice is present, check that the element is
+       either static or a nested aggregate that can be flattened,
+       before disregarding the replication limit for elaboration
+       purposes.  Check that a nested array is flattenable in the case
+       of a multidimensional array in any position.  Remove redundant
+       check in the Others case and pass Dims in call to
+       Is_Static_Element.  Use Expr variable.
+       (Is_Flat): Change type of Dims parameter from Int to Nat.
+       (Is_Static_Element): Add Dims parameter.  Replace tests on
+       literals with call to Compile_Time_Known_Value.  If everything
+       else failed and the dimension is 1, preanalyze the expression
+       before calling again Compile_Time_Known_Value on it.  Return
+       true for null.
+       (Late_Expansion): Do not expand further if the assignment to the
+       target can be done directly by the back end.
+
+2020-07-10  Arnaud Charlet  <charlet@adacore.com>
+
+       * osint-c.adb (Set_File_Name): Preserve casing of file.
+       * osint.adb (File_Names_Equal): New.
+       (Executable_Name): Use File_Equal instead of
+       Canonical_Case_File_Name.
+
+2020-07-10  Pascal Obry  <obry@adacore.com>
+
+       * libgnat/g-socket.adb (Wait_On_Socket): Fix memory leaks and
+       file descriptor leaks.  A memory leak was created each time the
+       routine was called without a selector (Selector = Null). Also,
+       in case of exception in the routine a memory leak and descriptor
+       leak was created as the created file selector was not closed.
+
+2020-07-10  Pascal Obry  <obry@adacore.com>
+
+       * libgnat/g-socket.adb: Minor style fixes.
+
+2020-07-10  Javier Miranda  <miranda@adacore.com>
+
+       * sem_util.adb
+       (Immediate_Context_Implies_Is_Potentially_Unevaluated): New
+       subprogram.
+       (Is_Potentially_Unevaluated): Do not stop climbing the tree on
+       the first candidate subexpression; required to handle nested
+       expressions.
+
+2020-07-10  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_aggr.adb, exp_spark.adb, sem_ch13.ads, sem_ch13.adb,
+       snames.ads-tmpl: Minor reformatting and typo fixes.
+
+2020-07-10  Yannick Moy  <moy@adacore.com>
+
+       * sem_util.adb (Has_Enabled_Property): Add handling of
+       non-variable objects.
+
+2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Check_Completion): Refactor chained
+       if-then-elsif-...  statement to be more like a case
+       statement (note: we can't simply use case statement because of
+       Is_Intrinsic_Subprogram in the first condition).
+
+2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.ads (E_Protected_Object): Enumeration literal removed.
+       * lib-xref.ads (Xref_Entity_Letters): Remove reference to
+       removed literal.
+       * sem_ch3.adb (Check_Completion): Likewise.
+       * sem_util.adb (Has_Enabled_Property): Likewise.
+
+2020-07-10  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_aggr.adb (Max_Aggregate_Size): Use small limit for
+       aggregate inside subprograms.
+       * sprint.adb (Sprint_Node_Actual [N_Object_Declaration]): Do not
+       print the initialization expression if the No_Initialization
+       flag is set.
+       * sem_util.ads, sem_util.adb (Predicate_Enabled): New.
+       * exp_ch4.adb (Expand_N_Type_Conversion): Code cleanup and apply
+       predicate check consistently.
+       * exp_ch6.adb (Expand_Actuals.By_Ref_Predicate_Check): Ditto.
+       * sem_ch3.adb (Analyze_Object_Declaration): Ditto.
+       * exp_ch3.adb (Build_Assignment): Revert handling of predicate
+       check for allocators with qualified expressions, now handled in
+       Freeze_Expression directly.
+       * sem_aggr.adb: Fix typos.
+       * checks.adb: Code refactoring: use Predicate_Enabled.
+       (Apply_Predicate_Check): Code cleanup.
+       * freeze.adb (Freeze_Expression): Freeze the subtype mark before
+       a qualified expression on an allocator.
+       * exp_util.ads, exp_util.adb (Within_Internal_Subprogram):
+       Renamed Predicate_Check_In_Scope to clarify usage, refine
+       handling of predicates within init procs which should be enabled
+       when the node comes from source.
+       * sem_ch13.adb (Freeze_Entity_Checks): Update call to
+       Predicate_Check_In_Scope.
+
+2020-07-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Expand_Array_Comparison): Reformat.
+       (Expand_Concatenate): Use standard size values directly and use
+       Standard_Long_Long_Unsigned instead of RE_Long_Long_Unsigned.
+       (Expand_Modular_Op): Use Standard_Long_Long_Integer in case the
+       modulus is larger than Integer.
+       (Expand_N_Op_Expon): Use standard size value directly.
+       (Narrow_Large_Operation): Use Uint instead of Nat for sizes and
+       use a local variable for the size of the type.
+       (Get_Size_For_Range): Return Uint instead of Nat.
+       (Is_OK_For_Range): Take Uint instead of Nat.
+
+2020-07-10  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator):
+       Build the internal anonymous access type using as a reference
+       the designated type imposed by the context (instead of using the
+       return type of the called function).
+
+2020-07-10  Yannick Moy  <moy@adacore.com>
+
+       * sem_res.adb (Resolve_Actuals): Protect call to
+       Is_Valued_Procedure.
+
+2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Process_Discriminants): Revert recent change to
+       location of Set_Ekind; detect effectively volatile discriminants
+       by their type only.
+
+2020-07-10  Joffrey Huguet  <huguet@adacore.com>
+
+       * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Add global
+       contract (Global => null) to all functions.
+
+2020-07-10  Ed Schonberg  <schonberg@adacore.com>
+
+       * aspects.ads: Add Aspect_Aggregate.
+       * exp_aggr.adb (Expand_Container_Aggregate): Expand positional
+       container aggregates into separate initialization and insertion
+       operations.
+       * sem_aggr.ads (Resolve_Container_Aggregate): New subprogram.
+       * sem_aggr.adb (Resolve_Container_Aggregate): Parse aspect
+       aggregate, establish element types and key types if present, and
+       resolve aggregate components.
+       * sem_ch13.ads (Parse_Aspect_Aggregate): Public subprogram used
+       in validation, resolution and expansion of container aggregates
+       * sem_ch13.adb
+       (Parse_Aspect_Aggregate): Retrieve names of primitives specified
+       in aspect specification.
+       (Validate_Aspect_Aggregate): Check legality of specified
+       operations given in aspect specification, before nane
+       resolution.
+       (Resolve_Aspect_Aggregate): At freeze point resolve operations
+       and verify that given operations have the required profile.
+       * sem_res.adb (Resolve): Call Resolve_Aspect_Aggregate if aspect
+       is present for type.
+       * snames.ads-tmpl: Add names used in aspect Aggregate: Empty,
+       Add_Named, Add_Unnamed, New_Indexed, Assign_Indexed.
+
+2020-07-10  Arnaud Charlet  <charlet@adacore.com>
+
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-shabig.o.
+       * libgnat/s-shabig.ads: New file to share definitions.
+       * libgnat/s-genbig.ads, libgnat/s-genbig.adb: Reorganized to
+       make it more generic and flexible in terms of memory allocation
+       and data structure returned.
+       (To_String): Moved to System.Generic_Bignums to allow sharing
+       this code.
+       (Big_And, Big_Or, Big_Shift_Left, Big_Shift_Right): New.
+       * libgnat/s-bignum.adb, libgnat/s-bignum.ads: Adapt to new
+       System.Generic_Bignums spec.
+       * libgnat/a-nbnbin.adb: Likewise.
+       (To_String): Moved to System.Generic_Bignums to allow sharing
+       this code.
+       * libgnat/a-nbnbre.adb (Normalize): Fix handling of Num = 0
+       leading to an exception.
+
+2020-07-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * freeze.adb (Freeze_Expr_Types): Replace call to Find_Aspect
+       with call to Find_Value_Of_Aspect and adjust accordingly.
+
+2020-07-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo.adb (Write_Field24_Name): Handle E_Loop_Parameter.
+       * freeze.adb (Freeze_Expr_Types): Freeze the iterator type used as
+       Default_Iterator of the name of an N_Iterator_Specification node.
+
+2020-07-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * checks.adb (Determine_Range): Deal with Min and Max attributes.
+       * exp_ch6.adb (Expand_Call_Helper): When generating code to pass
+       the accessibility level to the caller in the case of an actual
+       which is an if-expression, also remove the nodes created after
+       the declaration of the dummy temporary.
+       * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use Natural as
+       the type of the minimum accessibility level object.
+
+2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Process_Discriminants): Set Ekind of the
+       processed discriminant entity before passing to
+       Is_Effectively_Volatile, which was crashing on a failed
+       assertion.
+       * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Prevent
+       call to No_Caching_Enabled with entities other than variables,
+       which was crashing on a failed assertion.
+       (Analyze_Pragma): Style cleanups.
+       * sem_util.adb (Is_Effectively_Volatile): Enforce comment with
+       an assertion; prevent call to No_Caching_Enabled with entities
+       other than variables.
+       (Is_Effectively_Volatile_Object): Only call
+       Is_Effectively_Volatile on objects, not on types.
+       (No_Caching_Enabled): Enforce comment with an assertion.
+
+2020-07-10  Yannick Moy  <moy@adacore.com>
+
+       * debug.adb: Update comments to free usage of -gnatdF.
+
+2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Refactored from
+       Expand_SPARK_N_Attribute_Reference; rewrite into N_Aggregate or
+       N_Delta_Aggregate depending on what is being rewritten.
+       (Expand_SPARK_N_Delta_Aggregate): New routine to expand
+       delta_aggregate.
+       (Expand_SPARK_N_Attribute_Reference): Call the refactored
+       routine.
+
+2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Fix
+       expansion of attribute Update.
+
+2020-07-10  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem.adb (Walk_Library_Items): Fix handling of Ghost units.
+
+2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tracebak.c [generic implementation]: Add pragma GCC diagnostic
+       to disable warning about __builtin_frame_address.
+
+2020-07-08  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * socket.c [_WIN32] (__gnat_minus_500ms): Parentheses around &&
+       operations.  Remove notes about TN in comment.
+
+2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * adaint.h (__gnat_expect_portable_execvp): Fix prototype.
+       (__gnat_expect_poll): Likewise.
+       * expect.c [_WIN32]: Include adaint.h file.
+       (__gnat_waitpid): Remove useless variable.
+       (__gnat_expect_portable_execvp): Add ATTRIBUTE_UNUSED on parameter.
+       * raise-gcc.c [SEH] (__gnat_personality_v0): Add ATTRIBUTE_UNUSED.
+       * socket.c [_WIN32] (__gnat_getservbyport): Add ATTRIBUTE_UNUSED on
+       a couple of parameters.
+       (__gnat_gethostbyname): Likewise.
+       (__gnat_gethostbyaddr): Likewise.
+       (__gnat_getservbyname): Likewise.
+       (__gnat_last_socket_in_set): Use variables local to loops.
+       (__gnat_socket_ioctl): Cast 3rd parameter to proper type if _WIN32.
+       (__gnat_inet_pton): Cast 2nd parameter to proper type if _WIN32.
+       * sysdep.c (__gnat_localtime_tzoff): Remove superfluous test.
+       * terminals.c [_WIN32]: Include io.h file.
+       (is_gui_app): Remove useless variables and fix unsigned comparison.
+       (nt_spawnve): Add ATTRIBUTE_UNUSED on first parameter.  Initialize a
+       local variable and remove others that are useless.  Add missing cast
+       (__gnat_setup_child_communication): Remove useless variable and call
+       Use proper formatting string in call to sprintf.
+       (__gnat_setup_parent_communication): Cast to proper type.
+       (find_child_console): Fix prototype and remove useless variable.
+       (find_process_handle): Likewise.
+       (_gnat_interrupt_process): Move to after __gnat_interrupt_pid.
+       (__gnat_reset_tty): Add ATTRIBUTE_UNUSED on parameter, remove return
+       (__gnat_setup_winsize): Add ATTRIBUTE_UNUSED on all parameters.
+
+2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Expand_N_Allocator): In the subtype mark case, do
+       not apply constraint checks if the No_Initialization flag is set.
+
+2020-07-08  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch9.adb
+       (Build_Class_Wide_Master): Insert the declaration of _Master
+       before its use; required to avoid assertion failure in the
+       backend.
+
+2020-07-08  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/i-cexten.ads (long_long, unsigned_long_long): Now
+       subtypes of Interfaces.C types.
+       * libgnat/a-calcon.ads, libgnat/a-calcon.adb
+       (To_Unix_Nano_Time): Use Interfaces.C.long_long instead of
+       Interfaces.C.Extensions.long_long.
+
+2020-07-08  Vasiliy Fofanov  <fofanov@adacore.com>
+
+       * debug.adb: Document new switch.
+       * exp_ch6.adb (Warn_BIP): New function that warns if the switch
+       is on.  Call it from Make_Build_In_Place_* functions.  Warn_BIP
+       is not needed in Make_Build_In_Place_Iface_*, because those call
+       Make_Build_In_Place_Call_In_Object_Declaration or similar.
+
+2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
+
+       * erroutc.adb (Matches): Fix comments.
+
+2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * freeze.adb (Has_Decl_In_List): New predicate to check that an
+       entity is declared in a list of nodes.
+       (Freeze_Expression): Use it to deal with Expression_With_Actions,
+       short-circuit expression, if- and case-expression and ensure that
+       the freeze node is put onto their Actions list if the entity is
+       declared locally.
+
+2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * freeze.adb (In_Expanded_Body): Return true for the body of a
+       generated predicate function.
+
+2020-07-08  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_attr.adb: Remove hyphens in comments, plus minor code
+       reformatting.
+       * sem_ch13.adb: Fix typo (that => than).
+       * sem_util.adb: Add hyphen in comment ("class-wide").
+
+2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * freeze.adb (Freeze_Array_Type): Add comment on implementation
+       choice for byte-packed array types.
+
+2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute): Correct prefix of 'Result
+       this prefix is a generic function but the enclosing aspect or
+       pragma is attached to its instance.
+       * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Analyze
+       generic subprogram formal parameters (including the implicit
+       result of a generic function) and only then analyse its aspects,
+       because with Relaxed_Initialization the aspect expression might
+       refer to those formal parameters.
+       * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Accept
+       aspect on generic subprograms; install formal parameters of a
+       generic subprogram but not formal parameters of the generic unit
+       itself (the previous code was inspired by aspects Post and
+       Depends, where both kinds of formals are allowed).
+       * sem_util.ads (Enter_Name): Fix name of a subprogram referenced
+       in comment.
+
+2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call
+       Analyze_Aspect_Specifications after setting Ekind of the
+       analyzed entity.
+       * sem_ch13.adb (Analyze_Aspect_Yield): Remove minimal decoration
+       of generic subprograms.
+
+2020-07-08  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_prag.adb (Process_Inline): Check for duplicate
+       pragma+aspect Inline. Minor code cleanup.
+       (Check_Duplicate_Pragma): Add warning for duplicate
+       pragma [No_]Inline under -gnatwr.
+       * sinfo.ads, sinfo.adb (Next_Rep_Item): Allow N_Null_Statement
+       which can appear when a pragma is rewritten.
+       * sem_util.ads, sem_util.adb, bindo-writers.adb: Fix bad
+       copy/paste now flagged.
+       * libgnat/s-mmap.ads: Remove redundant pragma Inline.
+
+2020-07-08  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_util.adb (Build_Class_Wide_Clone_Body): Update entities to
+       refer to the right spec.
+
+2020-07-08  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Predicate_Failure): Check that the type has
+       predicates.  Remove the setting of Has_Delayed_Aspects and
+       Freeze_Node, because (if the code is legal) it should have
+       already been done by the predicate aspect.
+
+2020-07-08  Gary Dismukes  <dismukes@adacore.com>
+
+       * par-ch4.adb (P_Iterated_Component_Association): Typo
+       corrections.
+
+2020-07-08  Ed Schonberg  <schonberg@adacore.com>
+
+       * par.adb (P_Iterator_Specification): Make public for use in
+       other parser subprograms.
+       * par-ch4.adb (P_Iterated_Component_Association): In Ada_2020,
+       recognize use of Iterator_Specification in an element iterator.
+       To simplify disambiguation between the two iterator forms, mark
+       the component association as carrying an Iterator_Specification
+       only when the element iterator (using "OF") is used.
+       * par-ch5.adb (P_Loop_Parameter_Specification): In Ada_2020,
+       parse iterator filter when present.
+       (P_Iterator_Specification): Ditto.  Remove declaration of
+       P_Iterator_Specification, now in parent unit.
+       * exp_ch5.adb (Expand_N_Loop_Statement): Apply Iterator filter
+       when present.
+       (Expand_Iterator_Loop_Over_Array): Ditto.
+       (Expand_Iterator_Loop_Over_Container): Ditto.
+       * sem_aggr.adb (Resolve_Array_Aggregate): Emit error nessage if
+       an iterated component association includes a iterator
+       specificcation with an element iterator, i.e. one that uses the
+       OF keyword.
+       * sem_ch5.adb (Analyze_Iterator_Specification): Analyze Iterator
+       filter when present.
+       (Analyze_Loop_Parameter_Specification): Ditto.
+       * sinfo.adb: Suprogram bodies for new syntactic element
+       Iterator_Filter.
+       * sinfo.ads: Add Iterator_Filter to relevant nodes.  Structure
+       of Component_Association and Iteroted_Component_Association
+       nodes is modified to take into account the possible  presence of
+       an iterator specification in the latter.
+
+2020-07-08  Yannick Moy  <moy@adacore.com>
+
+       * sem_util.ads, sem_util.adb (Is_Attribute_Loop_Entry): New
+       function for GNATProve.
+
+2020-07-08  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_ch13.adb (Analyze_Record_Representation_Clause,
+       Check_Record_Representation_Clause): Add expected and actual
+       size to error message.
+
+2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.ads, sem_util.adb (Safe_To_Capture_Value): Return
+       True for in-parameters.
+
+2020-07-08  Justin Squirek  <squirek@adacore.com>
+
+       * exp_attr.adb (Expand_Attribute): Set
+       Stores_Attribute_Old_Prefix to generated renamings of 'Old
+       constants for later use in generating finalization routines.
+       * exp_ch7.adb (Build_Finalizer): Minor reformatting. Use "or
+       else" operators.
+
+2020-07-08  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch6.adb (Expand_Simple_Function_Return): Remove ugly code
+       that was copying the return expression, resetting Analyzed
+       flags, etc. for the return expression of static expression
+       functions.
+       * inline.adb (Inline_Static_Expression_Function_Call): Set the
+       Parent of the copied expression to that of the call. This avoids
+       a blowup in Insert_Actions when GNATprove_Mode is set and there
+       are nested SEF calls. Add ??? comment.
+       * sem_ch6.adb (Analyze_Expression_Function): In the case of a
+       static expression function, create a new copy of the expression
+       and replace the function's expression with the copy; the
+       original expression is used in the expression function's body
+       and will be analyzed and rewritten, and we need to save a clean
+       copy for later use in processing static calls to the function.
+       This allows removing the kludgy code that was in
+       Expand_Simple_Function_Return.
+       * sem_eval.adb (Eval_Qualified_Expression): Return immediately
+       if any errors have been posted on the qualified expression, to
+       avoid blowups when GNATprove_Mode is enabled (or with -gnatd.F),
+       since illegal static expressions are handled differently in that
+       case and attempting to fold such expressions would fail.
+
+2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * repinfo.adb (Compute_Max_Length): Skip hidden discriminants.
+       (List_Record_Layout): Likewise.
+       (List_Structural_Record_Layout): Use First_Discriminant instead
+       of First_Stored_Discriminant and Next_Discriminant instead of
+       Next_Stored_Discriminant to walk the list of discriminants.
+
+2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Analyze
+       optional boolean expressions.
+       * sem_util.ads, sem_util.adb (Has_Relaxed_Initialization): Adapt
+       query; update comment.
+
+2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.ads (Current_Value): Fix typo in comment.
+       * exp_ch2.adb (Expand_Current_Value): Remove unnecessary "Start
+       of processing ..." comment.
+       * exp_util.adb (Set_Entity_Current_Value): Fix unbalanced paren
+       in comment.
+       (Get_Current_Value_Condition): Fix layout in comment.
+       * sem_ch5.adb (Analyze_Cond_Then): Replace commented condition
+       with pragma Assert.
+
+2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch5.adb (Expand_N_If_Statement): Detect True/False
+       prefixed with Standard.
+
+2020-07-08  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Analyze_Aspect_Specifications): Add freeze node
+       for the Underlying_Full_View if it exists. The freeze node is
+       what triggers the generation of the predicate function.
+       * freeze.adb: Minor reformatting.
+
+2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Narrow_Large_Operation): Use the base type instead
+       of the first subtype of standard integer types as narrower type.
+
+2020-07-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * freeze.adb (Freeze_Array_Type): Use Ctyp more consistently.
+       Move code setting the alignment in the non-packed case to...
+       * layout.adb (Layout_Type): ...here.
+
+2020-07-07  Bob Duff  <duff@adacore.com>
+
+       * treepr.adb (Print_Node): Add code to test Is_Extension.
+
+2020-07-07  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch4.adb (Try_Container_Indexing): Add ??? comment. Protect
+       against malformed tree in case of errors.
+
+2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.adb, sem_ch10.adb, sem_ch12.adb, sem_ch8.adb: Use
+       Is_Generic_Subprogram.
+
+2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch8.adb (Analyze_Use_Package): Replace low-level,
+       error-prone Ekind_In tests with high-level Is_Generic_Subprogram
+       and Is_Subprogram.
+
+2020-07-07  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch6.adb (Check_Formal_Subprogram_Conformance): New
+       subprogram to handle checking without systematically emitting an
+       error.
+       (Check_Conformance): Update call to
+       Check_Formal_Subprogram_Conformance and fix handling of Conforms
+       and Errmsg parameters.
+
+2020-07-07  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch4.adb (Tagged_Membership): Generate a call to
+       CW_Membership instead of using Build_CW_Membership.
+       (Expand_N_In): Remove wrong handling of null access types and
+       corresponding comment.
+       * exp_intr.adb (Expand_Dispatching_Constructor_Call): Generate a
+       call to CW_Membership instead of using Build_CW_Membership.
+       * rtsfind.ads: Add CW_Membership.
+       * exp_atag.ads, exp_atag.adb (Build_CW_Membership): Removed.
+       * einfo.ads: Fix typo.
+       * libgnat/a-tags.ads, libgnat/a-tags.adb (CW_Membership): Moved
+       back to spec.
+
+2020-07-07  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Create
+       proper subprogram specification for body, using names in the
+       subprogram declaration but distinct entities.
+       * exp_ch6.adb (Expand_Call): If this is an indirect call
+       involving a subprogram wrapper, insert pointer parameter in list
+       of actuals with a parameter association, not as a positional
+       parameter.
+
+2020-07-07  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch6.adb (Expand_Branch): Verify the original node is a
+       conditional expression before recursing further.
+       (Insert_Level_Assign): Transform assertion into an explicit
+       raise.
+
+2020-07-07  Steve Baird  <baird@adacore.com>
+
+       * sem_attr.adb (Eval_Attribute): Generalize static evaluation of
+       Size attribute references to also handle
+       Max_Size_In_Storage_Elements references.
+
+2020-07-07  Javier Miranda  <miranda@adacore.com>
+
+       * sem_util.adb (Is_Potentially_Unevaluated): Code cleanup.
+
+2020-07-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * checks.ads (Expander Routines): Update the description of the
+       Do_Range_Check mechanism.
+       * checks.adb (Selected_Range_Checks): Fix typo.
+       * exp_ch9.adb: Add with and use clause for Checks.
+       (Actual_Index_Expression): Generate a range check if requested.
+       (Entry_Index_Expression): Likewise.
+       * sem_attr.adb (Resolve_Attribute) <Attribute_Count>: Call
+       Apply_Scalar_Range_Check instead of Apply_Range_Check.
+       * sem_ch9.adb (Analyze_Accept_Statement): Likewise.
+       * sem_res.adb (Resolve_Entry): Likewise, after having set the
+       actual index type on the prefix of the indexed component.
+       (Resolve_Indexed_Component): Remove useless conditional construct.
+
+2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * contracts.adb (Analyze_Entry_Or_Subprogram_Contract,
+       Process_Preconditions_For): Freeze expression that has been
+       relocated to pragma Precondition, not the expression which is
+       still in the aspect.
+
+2020-07-07  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch6.adb (Check_Conformance): Remove unnecessary (and
+       wrong) code.
+       * sem_ch8.adb (Check_Null_Exclusion): Post error at proper
+       location.  Introduce new helper Null_Exclusion_Mismatch and fix
+       implementation wrt formal subprograms used in generic bodies.
+       (Analyze_Subprogram_Renaming): Fix missing setting of
+       Error_Msg_Sloc.
+       (Analyze_Object_Renaming): Replace "in Anonymous_Access_Kind" by
+       Is_Anonymous_Access_Type.
+       * sem_util.adb (Has_Null_Exclusion): Fix handling of
+       N_Parameter_Specification.
+       * sem_ch12.adb (Instantiate_Object): Replace "in
+       Anonymous_Access_Kind" by Is_Anonymous_Access_Type.
+
+2020-07-07  Ed Schonberg  <schonberg@adacore.com>
+
+       * freeze.adb (Freeze_Expr_Types): Freeze the designated type of
+       the explicit dereference.
+
+2020-07-07  Javier Miranda  <miranda@adacore.com>
+
+       * sem_util.adb (Is_Potentially_Unevaluated): Protect reading
+       attribute Etype.
+
+2020-07-07  Bob Duff  <duff@adacore.com>
+
+       * libgnat/g-catiio.adb (Value, Parse_ISO_8601): Unsuppress
+       checks, and don't rely on 'Valid.
+
+2020-07-07  Arnaud Charlet  <charlet@adacore.com>
+
+       * Makefile.rtl: Remove dead code.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Document gnatbind -xdr switch.
+       * gnat_ugn.texi: Regenerate.
+
+2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst
+       (Validity Checking): Add "p" to the list of switches enabled by
+       -gnatVa.
+       * gnat_ugn.texi: Regenerate.
+
+2020-07-07  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Add call
+       to Check_Restriction_No_Specification_Of_Aspect.
+       * sem_prag.adb (Analyze_Pragma): Likewise.
+       * restrict.ads (Check_Restriction_No_Specification_Of_Aspect):
+       Mention possible new node kinds in documentation.
+       * restrict.adb (Check_Restriction_No_Specification_Of_Aspect):
+       Retrieve aspect id from different fields if given node is an
+       N_Pragma or an N_Attribute_Definition_Clause.
+
+2020-07-07  Gary Dismukes  <dismukes@adacore.com>
+
+       * contracts.adb (Add_Invariant_And_Predicate_Checks): Relax the
+       condition for doing invariant checks so that in-mode parameters
+       of procedures are also checked (required by AI05-0289, and
+       restricted to procedures by AI12-0044). This is done in a
+       procedure's nested postconditions procedure.
+       * exp_ch6.adb (Expand_Actuals): Also perform postcall invariant
+       checks for in parameters of procedures (but not functions).
+       Moved invariant-checking code to end of Expand_Actuals
+       (including the nested function Is_Public_Subp).
+
+2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb (Resolve_Delta_Array_Aggregate): Make Index_Type
+       a constant.
+
+2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_aggr.adb (Expand_N_Delta_Aggregate): Use type of the delta
+       base expression for the anonymous object of the delta aggregate.
+
+2020-07-07  Javier Miranda  <miranda@adacore.com>
+
+       * sem_util.ads (Interval_Lists): Reordering routine.
+       * sem_util.adb (Interval_Lists): Reordering routines to keep
+       them alphabetically ordered.
+
+2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_attr.adb (Resolve_Attribute): Do not call
+       Check_Non_Static_Context.
+
+2020-07-07  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_elab.adb (Is_Guaranteed_ABE): Take into account null
+       procedures.
+
+2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch5.adb (Analyze_Assignment): Reuse Is_Assignable.
+
+2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Add scalar
+       range checks for 'Update on arrays just like for 'Update on
+       records.
+       * sem_attr.adb (Analyze_Array_Component_Update): Do not set
+       range checks for single-dimensional arrays.
+       (Resolve_Attribute): Do not set range checks for both single-
+       and multi- dimensional arrays.
+
+2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem.ads (Sem): Fix description.
+
+2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Analyze_Relaxed_Parameter): Fix for protected
+       entries.
+
+2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * checks.adb (Apply_Scalar_Range_Check): Use Is_RTE.
+
+2020-07-06  Bob Duff  <duff@adacore.com>
+
+       * libgnat/g-catiio.ads: Document newly supported format.  Add
+       ISO_Time constant, for convenience.
+       * libgnat/g-catiio.adb (Image_Helper): New helper function to do
+       all the formatting work, called by the two exported Image
+       functions.  Add support for "%:::z" here. Add a Time_Zone
+       parameter used by the "%:::z" processing. This parameter is not
+       used for the actual time zone computations; local time is always
+       used for that, for ease of implementation reasons.  It would
+       make sense to use Append throughout this function, but that's a
+       cleanup for another day.
+       (Image): Modify these to pass the local time zone, or the
+       specified time zone, as appropriate.
+
+2020-07-06  Bob Duff  <duff@adacore.com>
+
+       * libgnat/g-catiio.ads: Change the regular expression that
+       documents the allowed format to match what ISO-8601 allows.
+       * libgnat/g-catiio.adb (Scan_Subsecond): Rewrite so it doesn't
+       assume the subsecond comes last.
+       (Parse_ISO_8601): Parse an optional subsecond, followed by an
+       optional time zone, rather than making these alternatives to
+       each other.
+
+2020-07-06  Bob Duff  <duff@adacore.com>
+
+       * libgnat/g-catiio.adb (Parse_ISO_8601): Minor cleanups:
+       Give some objects clearer names.
+       Make some objects more local to where they are used.
+       Remove some validity checks that can't fail, because some of
+       the variables tested have been moved so they're not visible here.
+       Anyway, Wrong_Syntax is about errors in the input, not data
+       validity.
+       Use Time_Zone_Seen instead of Local_Sign = ' ' to determine
+       that a time zone indication was seen.
+       We don't need to distinguish two different kinds of
+       syntax error (End_Of_Source_Reached and Wrong_Syntax),
+       so use Wrong_Syntax always.
+       Remove comment, "Certain scanning scenarios may handle
+       this exception on their own."; there are no such scenarios.
+
+2020-07-06  Bob Duff  <duff@adacore.com>
+
+       * libgnat/g-catiio.ads, libgnat/g-catiio.adb (Image): New
+       function. It might seem like the local-time Image should be
+       implemented in terms of the Time_Zone Image, but that would be
+       far harder to implement, so we do it the other way around.
+
+2020-07-06  Thomas Quinot  <quinot@adacore.com>
+
+       * libgnat/g-sechas.ads, libgnat/g-sechas.adb: Refactor to use
+       Stream_Element_Array as the internal buffer type.
+       * libgnat/g-shshco.adb: Adjust to use Stream_Element_Offset
+       instead of Integer as the index in the internal state buffer.
+
+2020-07-06  Gary Dismukes  <dismukes@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst, errout.ads,
+       erroutc.adb, exp_ch4.adb, exp_ch6.adb, freeze.adb: Comment
+       rewording/reformatting/typo fixes.  Replace "ie." with "that is"
+       in comment; "can not" -> "cannot", and remove an extraneous
+       underscore in another comment.
+       * gnat_rm.texi, gnat_ugn.texi: Regenerate.
+
+2020-07-06  Javier Miranda  <miranda@adacore.com>
+
+       * sem_util.ads (Interval_Lists.Aggregate_Intervals): New
+       subprogram.
+       * sem_util.adb (Has_Null_Others_Choice,
+       Non_Static_Or_Null_Range, Interval_Lists.Aggregate_Intervals):
+       New subprograms.
+       (Is_Potentially_Unevaluated): Adding support to detect
+       potentially unevaluated components of array aggregates.
+
+2020-07-06  Bob Duff  <duff@adacore.com>
+
+       * libgnat/g-catiio.adb (Parse_ISO_8601): New name for
+       Parse_ISO_8861_UTC.  8601 is the correct ISO standard number.
+       Also, "UTC" was confusing. All Time values are represented in
+       UTC, but the ISO 8601 date strings include a time zone.
+       If a time zone was specified, call
+       Ada.Calendar.Formatting.Time_Of instead of
+       GNAT.Calendar.Time_Of, because the latter adjusts to the current
+       time zone, whereas we want to use (just) the time zone specified
+       in the ISO string.  This allows us to pass Time_Zone instead to
+       Time_Of, instead of adjusting by Local_Disp by hand.
+       If no time zone was specified, call GNAT.Calendar.Time_Of as
+       before.
+       Use expanded names to clarify which Time_Of is being called.
+       Remove redundant comment, and move nonredundant part of the
+       commment to the spec.
+       (Value): Minor: use "not in" instead of "or else".
+       * libgnat/g-catiio.ads: Comment moved here. Correct the ISO
+       standard number.
+       * libgnat/g-calend.adb: Add ??? comments.
+       * libgnat/a-calend.ads, libgnat/a-calend.adb: Update obsolete
+       comments regarding the representation of type Time. Move the
+       information about the epoch (year 2150) to the spec, and avoid
+       uttering "2150" more than once.
+       * libgnat/a-catizo.ads (Time_Offset): Add comment.
+
+2020-07-06  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch5.adb (Find_Component): If the target type is a derived
+       record type and the required component is a discriminant that is
+       renamed in the derived type declaration, use the name of the
+       original discriminant to locate the intended target component.
+
+2020-07-06  Justin Squirek  <squirek@adacore.com>
+
+       * sem_ch12.adb (Analyze_Associations): Add check for errors on
+       the generic formal before continuing with instantiation.
+
+2020-07-06  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
+       libgnat/a-nbnbin__gmp.adb: Use more Valid_Big_Integer.
+
+2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_util.ads (Get_Index_Subtype): Fix duplicate "Last".
+
+2020-07-06  Ed Schonberg  <schonberg@adacore.com>
+
+       * sinfo.ads: Indicate that Field 1 of an N_Delta_Aggregate is
+       unused. Previously it was erroneously labelled as holding an
+       Expressions list, in analogy with other aggregate constructs,
+       but there are no Expressions attached to this node syntactically
+       or semantically.
+
+2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_attr.adb (Eval_Attribute): Check if constant has an
+       initialization expression.
+
+2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
+       scalar range checks.
+       * sem_attr.adb (Resolve_Attribute): Do not set scalar range
+       checks when resolving attribute Update.
+
+2020-07-06  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute, Attribute_Constrained): Issue
+       a warning if the attribute prefix is a current instance
+       reference within an aspect of a type or subtype.
+       (Address_Checks): Replace test of Is_Object (Ent) with
+       Is_Object_Reference (P) so that testing for current instances
+       will be done.
+       (Eval_Attribute): Add test for current instance reference, to
+       ensure that we still fold array attributes when current
+       instances are involved, since value prefixes are allowed for
+       array attributes, and will now be excluded by
+       Is_Object_Reference.
+       * sem_util.ads (Is_Current_Instance_Reference_In_Type_Aspect):
+       New exported query function.
+       * sem_util.adb (Is_Object_Reference): Return False for the case
+       where N is a current instance reference within an
+       aspect_specification of a type or subtype (basically if the
+       reference occurs within a predicate, invariant, or DIC aspect
+       expression).
+       (Is_Current_Instance_Reference_In_Type_Aspect): New function
+       that tests whether a node is a reference to a current instance
+       formal of a predicate, invariant, or
+       Default_Initial_Condition (DIC) subprogram.
+
+2020-07-06  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_res.adb (Resolve_Declare_Expression): New subprogram, to
+       install the scope holding local declarations of the expression,
+       before completing its resolution.
+       (Resolve): For an Expression_With_Actions that comes from a
+       source occurrence of a Declare_Expression, call new subprogram.
+
+2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute): Reuse SPARK_Implicit_Load.
+
+2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Propagate
+       exception when switch -gnatdk is used and no previous errors are
+       present.
+       * sem_eval.adb (Compile_Time_Known_Value, Is_In_Range):
+       Likewise.
+       * sem_warn.adb (Operand_Has_Warnings_Suppressed): Likewise.
+
+2020-07-06  Richard Kenner  <kenner@adacore.com>
+
+       * exp_unst.adb (Needs_Fat_Pointer): Don't check for formal.
+       (Unnest_Subprogram): Use 'Unchecked_Access instead of 'Access
+       when populating activation record.
+
+2020-07-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Rename parameter
+       from Bit_Packed_Array to Force.
+       (Expand_Actuals): Do not apply BIP processing if the subprogram
+       is intrinsic.  Adjust calls to Add_Simple_Call_By_Copy_Code and
+       add one for In parameters whose actual is a CPP constructor call.
+
+2020-07-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_attr.adb (Eval_Attribute): Do not apply range checks in
+       the case of 'Pos applied to an integer type here.
+
+2020-07-06  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Analyze_Object_Declaration): If the type is an
+       Unchecked_Union, and the expression is an aggregate. complete
+       the analysis and resolution of the aggregate, and treat like a
+       regular object declaration, instead of as a renaming
+       declarattion.
+
+2020-07-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch9.adb (Is_Potentially_Large_Family): Add documentation.
+       (Actual_Index_Expression): Use Entry_Index_Type.
+       (Build_Entry_Count_Expression): Likewise.
+       (Build_Find_Body_Index): Likewise.
+       (Collect_Entry_Families): Likewise. Use directly the bounds of
+       the index type to find out whether the family is large.
+       (Entry_Index_Expression): Likewise.
+
+2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_res.adb (Resolve_Range): Resolve both low and high bounds
+       with the range type.
+
+2020-07-06  Arnaud Charlet  <charlet@adacore.com>
+
+       * aspects.ads (Is_Representation_Aspect):
+       Default_Component_Value is a representation aspect.
+       * sem_ch13.adb (Check_Aspect_Too_Late, Rep_Item_Too_Late): Relax
+       RM 13.1(10) rule wrt primitive operations for Ada 202x.
+
+2020-07-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Move to library
+       level and use a new predicate Is_OK_Aggregate to recognize the
+       aggregates suitable for direct assignment by the back-end.
+       (Convert_Array_Aggr_In_Allocator): If neither in CodePeer mode nor
+       generating C code, generate a direct assignment instead of further
+       expanding if Aggr_Assignment_OK_For_Backend returns true.
+
+2020-07-06  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_aux.adb: Add a with clause for Nlists.
+       (Nearest_Ancestor): Test for the case of concurrent
+       types (testing for both Is_Concurrent_Type and
+       Is_Concurrent_Record_Type), and return the first ancestor in the
+       Interfaces list if present (otherwise will return Empty if no
+       interfaces).
+       * sem_ch13.adb (Build_Predicate_Functions): Add a ??? comment
+       about missing handling for adding predicates when they can be
+       inherited from multiple progenitors.
+
+2020-07-06  Arnaud Charlet  <charlet@adacore.com>
+
+       * par-ch6.adb (P_Return_Object_Declaration): Set
+       Has_Init_Expression flag.
+
+2020-07-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * debug.adb (d.K): Document new usage.
+       * fe.h (Debug_Flag_Dot_KK): Declare.
+       * gcc-interface/decl.c (gnat_to_gnu_field): Give an error when the
+       component overlaps with the parent subtype, except with -gnatd.K.
+
+2020-06-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Expand_Set_Membership): Expand the membership test
+       using left associativity instead of right associativity.
+
+2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils2.c (build_binary_op): Remove space.
+
+2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (gnat_to_gnu) <N_Allocator>: Minor tweaks.
+       Call Has_Constrained_Partial_View on base type of designated type.
+
+2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils.c (gnat_write_global_declarations): Output
+       integral global variables first and the imported functions later.
+
+2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (elaborate_expression_1): When GNAT encodings
+       are not used, do not create a variable for debug info purposes if
+       the expression is itself a user-declared variable.
+
+2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/ada-tree.h (DECL_RENAMED_OBJECT): Delete.
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Always use
+       the stabilized reference directly for renaming and create a variable
+       pointing to it separately if requested.
+       * gcc-interface/misc.c (gnat_print_decl): Adjust for deletion.
+       * gcc-interface/trans.c (Identifier_to_gnu): Likewise.
+       (gnat_to_gnu) <N_Object_Renaming_Declaration>:
+       Do not deal with side-effects here.
+       <N_Exception_Renaming_Declaration>: Likewise.
+
+2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (elaborate_expression): Replace calls to
+       Is_OK_Static_Expression with Compile_Time_Known_Value.
+
+2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Set
+       debug type to the base type and only if the subtype is artificial.
+
+2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Do
+       not test Is_Bit_Packed_Array in the memset path.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (lvalue_required_for_attribute_p): Do not deal
+       with 'Pos or 'Val.
+       (Attribute_to_gnu): Likewise.
+       * gcc-interface/utils.c (create_field_decl): Small formatting fix.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (adjust_for_implicit_deref): Delete.
+       (maybe_implicit_deref): Likewise.
+       (Attribute_to_gnu): Replace calls to maybe_implicit_deref by calls
+       to maybe_padded_object.
+       (Call_to_gnu): Likewise.
+       (gnat_to_gnu) <N_Indexed_Component>: Likewise.
+       <N_Slice>: Likewise.
+       <N_Selected_Component>: Likewise.
+       <N_Free_Statement>: Remove call to adjust_for_implicit_deref and
+       manually make sure that the designated type is complete.
+       * gcc-interface/utils2.c (build_simple_component_ref): Add comment.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_param): Tidy up.
+       (gnat_to_gnu_subprog_type): For a variadic C function, do not
+       build unnamed parameters and do not add final void node.
+       * gcc-interface/misc.c: Include snames.h.
+       * gcc-interface/trans.c (Attribute_to_gnu): Tidy up.
+       (Call_to_gnu): Implement support for unnamed parameters in a
+       variadic C function.
+       * gcc-interface/utils.c: Include snames.h.
+       (copy_type): Tidy up.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
+       range checks to allocators here.
+
+2020-06-19  Justin Squirek  <squirek@adacore.com>
+
+       * lib.adb (Check_Same_Extended_Unit): Add check to determine if
+       the body for the subunits exist in the same file as their
+       specifications.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_aggr.adb (In_Place_Assign_OK): In an allocator context,
+       check the bounds of an array aggregate against those of the
+       designated type, except if the latter is unconstrained.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch3.adb (Is_Visible_Component): Reason only on the private
+       status of the original type in an instance body.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_res.adb (Resolve_Qualified_Expression): Do not override the
+       type of the node when it is unconstrained if it is for an allocator.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_res.adb (Resolve_Allocator): Call Resolve_Qualified_Expression
+       on the qualified expression, if any, instead of doing an incomplete
+       type resolution manually.
+       (Resolve_Qualified_Expression): Apply predicate check to operand.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch4.adb (Analyze_Selected_Component): In an instance body,
+       also invoke Find_Component_In_Instance on the parent subtype of
+       a derived tagged type immediately visible.  Remove obsolete case.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_attr.adb (Get_Integer_Type): Return the largest supported
+       unsigned integer type if need be.
+
+2020-06-19  Justin Squirek  <squirek@adacore.com>
+
+       * sem_warn.adb (Warn_On_Known_Condition): Add general sanity
+       check that asserts the original source node being checked
+       contains an entity. If not, it could be the result of special
+       case expansion for type conversions.
+
+2020-06-19  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb (Analyze_Expression_Function): Do not indicate
+       that the function has a completion if it appears within a Ghost
+       generic package.
+
+2020-06-19  Bob Duff  <duff@adacore.com>
+
+       * libgnat/a-ststbo.adb (Write): Replace pragma Assert with "if
+       ... raise Constraint_Error".
+
+2020-06-19  Justin Squirek  <squirek@adacore.com>
+
+       * widechar.adb, widechar.ads (Skip_Wide): Catch validity check
+       failure when skipping over characters, and update comment to
+       reflect Skip_Wide's usage in error printing.
+
+2020-06-19  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch3.ads (Ensure_Activation_Chain_And_Master): New
+       subprogram.
+       * exp_ch3.adb (Ensure_Activation_Chain_And_Master): New
+       subprogram that factorizes code.
+       (Expand_N_Object_Declaration): Call new subprogram.
+       * sem_ch6.adb (Analyze_Function_Return): Returning a
+       build-in-place unconstrained array type defer the full analysis
+       of the returned object to avoid generating the corresponding
+       constrained subtype; otherwise the bounds would be created in
+       the stack and a dangling reference would be returned pointing to
+       the bounds.
+
+2020-06-19  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
+       libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
+       libgnat/a-nbnbre.ads: Update spec according to AI12-0366.
+
+2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * checks.ads: Remove excessive whitespace in declarations of
+       functions for check suppression.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch7.adb (Hide_Public_Entities): Split handling of objects
+       and subprograms, and do not reject the latter upfront in nested
+       instance specs if there are no referencer subprograms at all.
+       (Analyze_Package_Body_Helper): Also call Hide_Public_Entities on
+       nested generic instances.
+
+2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute): Reject illegal positional
+       component associations; fix syntax in comment about named
+       component associations.
+
+2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Modify a nested
+       Get_Component_Type routine to return a component and not just
+       its type; use this routine to decorate the identifier within the
+       delta aggregate.
+
+2020-06-19  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch4.adb (Find_Equality_Types.Check_Access_Attribute): New.
+       (Find_Equality_Types): Move universal_access related checks at
+       the end of the processing and add call to
+       Check_Access_Attribute.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_prag.adb (Process_Convention): Revert previous change.
+
+2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * checks.ads (Apply_Static_Length_Check): Move up.
+       (Apply_Range_Check): Add parameter Insert_Node.
+       * checks.adb (Apply_Selected_Range_Checks): Merge into...
+       (Apply_Range_Check): ...this.  Add parameter Insert_Node,
+       pass it as Warn_Node to Selected_Range_Checks and use it
+       as insertion point for the checks.
+       * sem_ch3.adb (Analyze_Subtype_Declaration): Rewrite block
+       dealing with the range checks for the subtype indication.
+       Use local variable and call Apply_Range_Check in both cases.
+
+2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference): Call Ensure_Valid
+       on the expression of an object declaration that captures the
+       value of 'Old prefix.
+
+2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference): Add comment.
+       * sem_attr.adb (Analyze_Attribute): Add ??? comment.
+       * sem_util.ads (Valid_Scalars): This routine is only used for
+       'Valid_Scalars and not for 'Valid.
+
+2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference): Do not call
+       Scalar_Part_Present on the array component's type.
+       (Build_Array_VS_Func): Remove Comp_Typ parameter, because it can
+       be easily computed from the Array_Top parameter *and redundant
+       parameters are confusing and error-prone).
+
+2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_attr.adb (Build_Record_VS_Func): Strip privacy and type
+       derivation from the root type when 'Valid_Scalars is applied to
+       a class-wide type.
+
+2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * checks.adb (Apply_Parameter_Validity_Checks): Remove testing
+       of Check_Validity_Of_Parameters for every formal parameter and
+       function result.
+
+2020-06-19  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_warn.adb (Warn_On_Overlapping_Actuals): Add missing
+       warning tag.
+
+2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Get_Size_For_Range): Only make sure to return a
+       size lower than that of the original type if possible.
+       * libgnat/s-rannum.adb (Random_Discrete): Back out optimization
+       added for 32-bit types.
+
+2020-06-18  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch6.ads, sem_ch6.adb (Check_Formal_Conformance): New
+       subprogram.
+       (Check_Conformance): Move code to Check_Formal_Conformance.
+       * sem_ch8.adb (Analyze_Subprogram_Renaming): Check for formal
+       conformance when needed.
+
+2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Narrow_Large_Operation): New procedure to try
+       and narrow large arithmetic and comparison operations.
+       (Expand_N_In): Call it.
+       (Expand_N_Op_Abs): Likewise.
+       (Expand_N_Op_Add): Likewise.
+       (Expand_N_Op_Divide): Likewise.
+       (Expand_N_Op_Eq): Likewise.
+       (Expand_N_Op_Ge): Likewise.
+       (Expand_N_Op_Gt): Likewise.
+       (Expand_N_Op_Le): Likewise.
+       (Expand_N_Op_Lt): Likewise.
+       (Expand_N_Op_Minus): Likewise.
+       (Expand_N_Op_Mod): Likewise.
+       (Expand_N_Op_Multiply): Likewise.
+       (Expand_N_Op_Ne): Likewise.
+       (Expand_N_Op_Plus): Likewise.
+       (Expand_N_Op_Rem): Likewise.
+       (Expand_N_Op_Subtract): Likewise.
+       (Expand_N_Type_Conversion): Use Convert_To procedure.
+       * exp_ch9.adb (Is_Pure_Barrier) <N_Identifier>: Skip all
+       numeric types.
+       <N_Type_Conversion>: Use explicit criterion.
+
+2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Expand_Allocator_Expression): Apply constraint
+       and predicate checks for the qualified expression on entry,
+       followed by constraint and predicate checks for the allocator
+       itself, and return early if this results in a static error.
+       (Expand_N_Allocator): Do not do the same here.  Instead apply
+       constraint and predicate checks for arrays in the subtype
+       indication case.
+       * exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
+       range checks to allocators here.
+
+2020-06-18  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch6.adb (BIP_Suffix_Kind, Is_Build_In_Place_Entity): Move
+       declarations...
+       * exp_ch6.ads: Here.
+       * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Do not rely
+       on the name of the scope to locate the extra formal BIPalloc
+       since they are copied when the pointer type associated with
+       dispatching calls is built; rely on routines
+       Is_Build_In_Place_Entity and BIP_Suffix_Kind.
+       * exp_disp.adb (Expand_Dispatching_Call): Set the scope of the
+       first extra formal of the internally built pointer type.
+       * sem_ch3.adb (Derive_Subprogram): Do not inherit extra formals
+       from a limited interface parent since limitedness is not
+       inherited in such case (AI-419) and this affects the extra
+       formals.
+       * sprint.adb (Write_Itype): Output extra formals of subprogram
+       types.
+
+2020-06-18  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * errout.adb (Write_Error_Summary): Display number of warnings
+       treated as errors.
+       * errutil.ads: Update comment.
+
+2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_attr.adb (Analyze_Attribute) <Asm_{In,Out}put>: Alphabetize.
+       <Component_Size>: Add check for universal integer attribute.
+       <Aft>, <Bit_Order>, <Definite>, <Max_Alignment_For_Allocation>,
+       <Scalar_Storage_Order>: Raise Program_Error on them.
+       * sem_attr.adb (Eval_Attribute) <Component_Size>: Add comment on
+       the packed array case.
+
+2020-06-18  Steve Baird  <baird@adacore.com>
+
+       * sem_util.adb (Object_Access_Level): Treat a 'Old attribute
+       reference like an aggregate in determining its static
+       accessibility level; after the evaluation of the relevant
+       post-condition, the implicitly declared constant associated with
+       an Old attribute reference ceases to exist. Similarly for
+       Loop_Entry attribute.
+       * exp_ch6.adb (Expand_Call_Helper): For an attribute reference
+       that is expanded into a reference to an implicitly declared
+       constant (e.g., a 'Old or 'Loop_Entry attribute), compute the
+       dynamic accessibility level of that constant by looking at the
+       declaration of the constant (as opposed to looking at the
+       attribute reference).
+
+2020-06-18  Steve Baird  <baird@adacore.com>
+
+       * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a
+       default initial condition check for the declaration of an
+       imported object.
+
+2020-06-18  Arnaud Charlet  <charlet@adacore.com>
+
+       * Makefile.rtl: Add s-statxd.o.
+       * bindgen.adb (Gen_Adainit): Add support for XDR_Stream.
+       * bindusg.adb (Display): Add mention of -xdr.
+       * gnatbind.adb: Process -xdr switch.
+       * init.c (__gl_xdr_stream): New.
+       * opt.ads (XDR_Stream): New.
+       * libgnat/s-stratt__xdr.adb: Rename to...
+       * libgnat/s-statxd.adb: this and adjust.
+       * libgnat/s-statxd.ads: New.
+       * libgnat/s-stratt.ads, libgnat/s-stratt.adb: Choose between
+       default and XDR implementation at runtime.
+       * libgnat/s-ststop.ads: Update comments.
+       * doc/gnat_rm/implementation_advice.rst: Update doc on XDR
+       streaming.
+       * gnat_rm.texi: Regenerate.
+
+2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute) <To_Address>: Use the address
+       size of the target instead of the host when checking the value of
+       a static expression.  Also use standard idiom for exponentiation.
+
+2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_prag.adb (Process_Convention): Give a warning on C_Variadic_n
+       being applied to a subprogram with exactly n parameters.
+
+2020-06-18  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnarl/s-osinte__linux.ads, libgnat/g-io.adb,
+       libgnat/g-socket.adb, libgnat/g-socthi.adb,
+       libgnat/g-socthi.ads, libgnat/g-socthi__vxworks.adb,
+       libgnat/g-socthi__vxworks.ads, libgnat/g-sothco.ads,
+       libgnat/s-io.adb, libgnat/a-except.adb: Fix function profile
+       mismatch with imported C functions.
+
+2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch6.adb (Expand_Call_Helper): Remove superfluous calls
+       to Relocate_Node and merge calls to Analyze and Resolve in a
+       couple of places.  Do not attempt to generate a range check
+       for an actual parameter against the formal's type of a derived
+       subprogram after generating a conversion to the formal's type
+       of the parent subprogram.
+
+2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * checks.adb (Compute_Range_For_Arithmetic_Op): New procedure to
+       compute a range for an arithmetical operation extracted from...
+       (Minimize_Eliminate_Overflows): ...here.  Call it.
+       (Determine_Range_Cache_O): New cache for Original_Node nodes.
+       (Determine_Range): Call Compute_Range_For_Arithmetic_Op for all
+       arithmetic expressions. Use Attribute_Id in lieu of Attribute_Name
+       for attributes. Add handling for Range_Length alongside Length.
+       Add specific handling for Alignment, Bit, First_Bit, Last_Bit,
+       Max_Size_In_Storage_Elements, Position, Bit_Position,
+       Component_Size, Object_Size, Size, Value_Size, Descriptor_Size.
+       (Enable_Overflow_Check): Omit the check for Abs and Minus if the
+       operand cannot be the largest negative number.
+       (Selected_Length_Checks): Use Pos for Number_Dimensions.
+       * exp_attr.adb (Expand_N_Attribute_Reference): Move compile-time
+       handling of Bit_Position, Descriptor_Size, First_Bit, Last_Bit
+       and Position to...
+       * sem_attr.adb (Eval_Attribute): ...here.  Move up Alignment for
+       objects and use Compile_Time_Known_Attribute in this case too.
+
+2020-06-18  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * erroutc.ads: Declare new Is_Compile_Time_Msg boolean,
+       add new Compile_Time_Pragma field to Error_Msg_Object type.
+       (Count_Compile_Time_Pragma_Warnings): New function.
+       * erroutc.adb (Count_Compile_Time_Pragma_Warnings): New
+       function.
+       (Compilation_Errors): Take Compile_Time warnings into account
+       when tallying Errors/Warnings.
+       * errout.ads (Error_Msg): New procedure.
+       * errout.adb (Error_Msg): New procedure.
+       (Error_Msg_Internal): Set new Compile_Time_Pragma field in
+       Error_Msg_Object.
+       * errutil.adb (Error_Msg): Set new Compile_Time_Pragma field in
+       Error_Msg_Object.
+       * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Pass
+       True to new Error_Msg procedure.
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Update doc for
+       the Compile_Time_Warning pragma.
+       * gnat_rm.texi: Regenerate.
+       * opt.ads: Update comment.
+
+2020-06-18  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch4.adb (Check_Compatible_Profiles): Add explicit
+       initialization.
+
+2020-06-18  Piotr Trojanek  <trojanek@adacore.com>
+
+       * checks.adb (Generate_Index_Checks): Handle
+       N_Subtype_Indication returned from Scalar_Range.
+
+2020-06-18  Piotr Trojanek  <trojanek@adacore.com>
+
+       * checks.adb, sem_ch3.adb: Minor refactorings.
+       * sem_eval.adb (Eval_Qualified_Expression): Fix reference to RM
+       rule in comment; only set a local variable Hex in the branch
+       where it is used.
+
+2020-06-18  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_eval.adb (Check_Non_Static_Context): Use Is_RTE.
+
+2020-06-18  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch4.adb (Find_Equality_Types.Check_Access_Object_Types):
+       New function, used to implement RM 4.5.2 (9.6/2).
+       (Find_Equality_Types.Check_Compatible_Profiles): New function,
+       used to implement RM 4.5.2(9.7/2).
+       (Find_Equality_Types.Reference_Anonymous_Access_Type): New
+       function.
+       (Find_Equality_Types.Try_One_Interp): Fix handling of anonymous
+       access types which was accepting both too much and too little.
+       Remove accumulated special and incomplete cases for
+       instantiations, replaced by Has_Compatible_Type.
+       (Analyze_Overloaded_Selected_Component): Use
+       Is_Anonymous_Access_Type instead of Ekind_In.
+       * sem_res.adb: Code cleanup and bug fix: use
+       Is_Anonymous_Access_Type instead of Ekind_In.  Relax checking of
+       anonymous access parameter when universal_access "=" is
+       involved.
+       * sem_type.adb: Likewise.
+       (Find_Unique_Type): Move code from here...
+       (Specific_Type): ...to here. Also add missing handling of access
+       to class wide types.
+       * einfo.ads, einfo.adb (Is_Access_Object_Type): New.
+
+2020-06-18  Bob Duff  <duff@adacore.com>
+
+       * libgnat/a-strsto.ads, libgnat/a-ststbo.adb,
+       libgnat/a-ststbo.ads, libgnat/a-ststun.adb,
+       libgnat/a-ststun.ads: New files, containing packages
+       Ada.Streams.Storage, Ada.Streams.Storage.Bounded, and
+       Ada.Streams.Storage.Unbounded.
+       * impunit.adb, Makefile.rtl: Add new file names.
+
+2020-06-18  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch13.adb (Has_Good_Profile): Enforce strictness in the
+       check. Required to detect wrong profiles for Input and Output.
+       (Analyze_Stream_TSS_Definition): Minor enhancement in the text
+       of the error for class-wide attributes.
+
+2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_attr.adb (Get_Integer_Type): Pick an unsigned type based
+       on the Esize of the base type of the input type.
+
+2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Expand_Array_Equality): For the optimization of
+       the 2-element case, build new expression lists for the indices.
+
+2020-06-18  Richard Kenner  <kenner@adacore.com>
+
+       * sem_util.adb (Enclosing_Subprogram): No longer need
+       Convention_Protected.
+
+2020-06-18  Claire Dross  <dross@adacore.com>
+
+       * sem_util.adb (Is_OK_Volatile_Context): Return False on
+       definitions of constants declared in declare expressions.
+
+2020-06-18  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_aspects.rst
+       (Relaxed_Initialization): New implementation-defined aspect.
+       * doc/gnat_rm/implementation_defined_attributes.rst
+       (Initialized): New implementation-defined attribute.
+       * gnat_rm.texi: Regenerate.
+
+2020-06-18  Javier Miranda  <miranda@adacore.com>
+
+       * exp_disp.adb (Expand_Dispatching_Call): Add missing decoration
+       of attribute Extra_Accessibility_Of_Result.
+       * freeze.adb (Check_Extra_Formals): No check required if
+       expansion is disabled; Adding check on
+       Extra_Accessibilty_Of_Result.
+       (Freeze_Subprogram): Fix decoration of
+       Extra_Accessibility_Of_Result.
+       * sem_ch3.adb (Derive_Subprogram): Fix decoration of
+       Extra_Accessibility_Of_Result
+
+2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Optimize_Length_Comparison): Accept 32-bit values
+       in the full unsigned range.
+
+2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * checks.adb (Apply_Universal_Integer_Attribute_Checks): Do not do
+       anything when the type of the node is already Universal_Integer.
+
+2020-06-17  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch10.adb (Expand_With_Clause): Add missing handling of
+       N_Generic_Subprogram_Declaration, N_Subprogram_Declaration,
+       N_Subprogram_Body.
+
+2020-06-17  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch13.adb: (Check_Inherited_Indexing): Check that a type
+       derived from an indexable container type cannot specify an
+       indexing aspect if the same aspect is not specified for the
+       parent type (RM 4.1.6 (6/5), AI12-160). Add a check that a
+       specified indexing aspect for a derived type is confirming.
+
+2020-06-17  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch9.adb (Build_Protected_Subp_Specification): Add ???
+       comment about the flag Has_Nested_Subprogram not being set here.
+       (Expand_N_Protected_Body): If the original body for a protected
+       subprogram has the flag Has_Nested_Subprogram set, then set that
+       flag on the new unprotected subprogram body that's created for
+       it, and reset the Scope fields of its top level declarations,
+       which have been effectively taken from the original protected
+       subprogram body. Add ??? comment about unclear testing of
+       Corresponding_Spec.
+
+2020-06-17  Javier Miranda  <miranda@adacore.com>
+
+       * aspects.ads (type Aspect_Id): Add Aspect_Yield as a Boolean
+       aspect, and update the Is_Representation_Aspect, Aspect_Names,
+       and Aspect_Delay arrays.
+       * einfo.ads, einfo.adb (Has_Yield_Aspect, Yield_Aspect): New
+       subprograms.
+       * exp_ch6.adb (Add_Return, Expand_Non_Function_Return,
+       Expand_Simple_Function_Return): Add calls to Yield.
+       * exp_ch9.adb (Build_Accept_Body, Expand_N_Accept_Statement):
+       Add calls to Yield.
+       * rtsfind.ads (RE_Yield): Adding support to generate calls to
+       the runtime service Ada.Dispatching.Yield
+       * sem_ch13.adb (Analyze_Aspect_Yield): New subprogram.
+       * sem_ch3.adb (Derive_Subprogram): Inherit attribute
+       Has_Yield_Aspect.
+       * sem_ch8.adb (Analyze_Subprogram_Renaming): Check consistency
+       of Has_Yield in the actual subprogram of a generic
+       instantiation.
+       * sem_disp.adb (Check_Dispatching_Operation): Check that if the
+       Yield aspect is specified for a dispatching subprogram that
+       inherits the aspect, the specified value shall be confirming.
+       * sem_prag.adb (Analyze_Pragma [Pragma_Implemented]): Check that
+       the implementation kind By_Protected_Procedure cannot be applied
+       to a procedure that has aspect Yield.
+
+2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Expand_N_Op_Expon): Replace all occurrences of
+       the original right operand with the relocated version.
+
+2020-06-17  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch6.adb (Has_BIP_Extra_Formal): New subprogram.
+       (Needs_BIP_Task_Actuals): Add support for the subprogram type
+       internally generated for dispatching calls.
+       * exp_disp.adb (Expand_Dispatching_Call): Adding code to
+       explicitly duplicate the extra formals of the target subprogram.
+       * freeze.adb (Check_Extra_Formals): New subprogram.
+       (Freeze_Subprogram): Fix decoration of Extra_Formals.
+       * sem_ch3.adb (Derive_Subprogram): Fix decoration of
+       Extra_Formals.
+
+2020-06-17  Bob Duff  <duff@adacore.com>
+
+       * par.adb (P_Basic_Declarative_Items): Update comment about
+       Declare_Expression.
+       * par-ch3.adb (P_Declarative_Items): Pass in Declare_Expression
+       flag, and if True, skip the call to Style.Check_Indentation.
+       * par-ch4.adb (P_Declare_Expression): Fix incorrect comment.
+
+2020-06-17  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_res.adb (Valid_Conversion): Change error message to make
+       it more user-friendly.
+
+2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * checks.ads (Apply_Length_Check_On_Assignment): Declare.
+       * checks.adb (Apply_Length_Check_On_Assignment): New procedure
+       to apply a length check to an expression in an assignment.
+       * exp_ch5.adb (Expand_Assign_Array): Call it instead of calling
+       Apply_Length_Check to generate a length check.
+       * sem_ch5.adb (Analyze_Assignment): Likewise.
+
+2020-06-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.adb (Is_Relaxed_Initialization_State): Add reference to
+       SPARK RM.
+       * sem_attr.adb (Analyze_Attribute_Old_Result): Likewise.
+       * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Reject
+       aspect on completions of private types and deferred constants.
+       * sem_util.ads, sem_util.adb (Has_Relaxed_Initialization):
+       Adjust comments; support queries for constants.
+
+2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * cstand.adb (Stloc): Change to a renaming.
+       (Staloc): Likewise.
+       (Build_Unsigned_Integer_Type): Remove Nam parameter, use local
+       constants and do not call Make_Name.
+       (Make_Dummy_Index): Use local constants.
+       (Create_Standard): Pass the name of entities as parameter in
+       calls to New_Standard_Entity and remove calls to Make_Name.
+       Adjust calls to Build_Unsigned_Integer_Type.
+       (Identifier_For): Use local constant.
+       (Make_Component): Pass the name of the component as parameter
+       in call to New_Standard_Entity and remove call to Make_Name.
+       (Make_Formal): Likewise.  Rename Formal_Name parameter into
+       Nam and use local constant.
+       (Make_Name): Delete.
+       (New_Operator): Use local constant.
+       (New_Standard_Entity): Rename S parameter into Nam and build
+       the name here.  Remove call to Make_Name.
+       (Register_Float_Type): Pass the name of the type as parameter
+       in call to New_Standard_Entity and remove call to Make_Name.
+
+2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
+       Remove condition added for scalar types.
+
+2020-06-17  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch3.ads (Build_Access_Subprogram_Wrapper_Body): Adjust
+       colon columns; reformat comment.
+       * exp_ch3.adb
+       (Build_Access_Subprogram_Wrapper_Body): Likewise.
+       * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Reformat spec
+       comment and reformat comment in body.
+       (Analyze_Full_Type_Declaration): Reformat comment.
+       (Replace_Type_Name): Fixed three typos, plus reformatting of
+       comment.
+       * sem_prag.adb (Analyze_Pre_Post_Condition): Fix typos.
+       * sem_warn.adb (Warn_On_Overlapping_Actuals): Edit comments:
+       remove hyphen, add missing word.
+
+2020-06-17  Bob Duff  <duff@adacore.com>
+
+       * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
+       libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb,
+       libgnat/a-cborma.adb, libgnat/a-cborse.adb,
+       libgnat/a-cdlili.adb, libgnat/a-chtgbk.adb,
+       libgnat/a-chtgke.adb, libgnat/a-cidlli.adb,
+       libgnat/a-cihama.adb, libgnat/a-cihase.adb,
+       libgnat/a-cimutr.adb, libgnat/a-ciorma.adb,
+       libgnat/a-ciorse.adb, libgnat/a-cobove.adb,
+       libgnat/a-cohama.adb, libgnat/a-cohase.adb,
+       libgnat/a-coinve.adb, libgnat/a-comutr.adb,
+       libgnat/a-convec.adb, libgnat/a-coorma.adb,
+       libgnat/a-coorse.adb, libgnat/a-crbtgk.adb,
+       libgnat/a-crbtgo.adb, libgnat/a-rbtgso.adb: Move tampering
+       checks earlier.
+
+2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_attr.adb (Get_Integer_Type): Use standard types without
+       a specific size.
+       * sem_res.adb (Resolve_Unchecked_Type_Conversion): Remove a
+       redundant intermediate conversion to Universal_Integer.
+
+2020-06-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive): Fix
+       comment and enforce it with an assertion in the body.
+
+2020-06-17  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Analyze_Full_Type_Declaration): For an
+       access_to_subprogram declaration that has aspect specifications,
+       call Build_Access_ Subprogram_Wrapper at once, so that pre- and
+       postcondition aspects are analyzed in the context of a
+       subprogram declaration.
+       (Build_Access_Subprogram_Wrapper): Examine aspect specifications
+       of an Access_To_Subprogram declaration. If pre- or
+       postconditions are declared for it, create declaration for
+       subprogram wrapper and add the corresponding aspect
+       specifications to it. Replace occurrences of the type name by
+       that of the generated subprogram, so that attributes 'Old and
+       'Result can appear in a postcondition.
+       * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Moved
+       here from sem_prag.adb.
+       * exp_ch3.ads (Build_Access_Subprogram_Wrapper_Body): Visible
+       subprogram.
+       * sem_prag.adb (Build_Access_Subprogram_Wrapper / _Body): Moved
+       to sem_ch3.adb and exp_ch3.adb.
+
+2020-06-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * atree.adb (Preserve_Comes_From_Source): Rewrite using
+       Set_Comes_From_Source and Comes_From_Source, which enforce that
+       the parameters are valid.
+       * exp_ch4.adb, exp_ch5.adb, sem_ch12.adb, sem_ch6.adb,
+       sem_res.adb: Rewrite using Preserve_Comes_From_Source.
+
+2020-06-17  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Remove obsolete
+       comments.
+
+2020-06-17  Gary Dismukes  <dismukes@adacore.com>
+
+       * aspects.ads (type Aspect_Id): Add Aspect_Static as a Boolean
+       aspect, and update the Is_Representation_Aspect, Aspect_Names,
+       and Aspect_Delay arrays.
+       * exp_ch6.adb (Expand_Simple_Function_Return): In the case of a
+       return for a static expression function, capture a copy of the
+       expression of the return statement before it's expanded and
+       reset its Analyzed flags. Then, just before leaving this
+       procedure, if the expression was rewritten, set the
+       Original_Node of the rewritten expression to the new copy and
+       also set the Expression of the associated static expression
+       function to designate that copy. This ensures that later copies
+       of the expression made via New_Copy_Tree will fully copy all
+       nodes of the expression tree.
+       * inline.ads (Inline_Static_Expression_Function_Call): New
+       procedure to evaluate and produce the result of a static call to
+       a static expression function.
+       * inline.adb: Add with and use for Sem_Res.
+       (Establish_Actual_Mapping_For_Inlined_Call): New procedure
+       extracted from code in Expand_Inlined_Call that traverses the
+       actuals and formals of an inlined call and in some cases creates
+       temporaries for holding the actuals, plus establishes an
+       association between formals and actuals (via the Renamed_Object
+       fields of the formals).
+       (Formal_Is_Used_Once): Function removed from Expand_Inlined_Call
+       and now nested in the above procedure.
+       (Expand_Inlined_Call): Code for doing the formal/actual
+       traversal is moved to Create_Actual_Temporaries and replaced
+       with a call to that new procedure.
+       (Inline_Static_Expression_Function_Call): New procedure to
+       evaluate a static call to a static expression function,
+       substituting actuals for their corresponding formals and
+       producing a fully folded and static result expression. The
+       function has subsidiary functions Replace_Formal and Reset_Sloc
+       that take care of doing the mapping of formals to actuals and
+       resetting the Slocs of subnodes of the mapped expression to that
+       of the call so errors will be flagged on the call rather than
+       function.
+       * sem_ch6.adb (Analyze_Expression_Function): In the case of a
+       static expression function, perform an additional preanalysis of
+       the function's expression to ensure that it's a potentially
+       static expression (according to the requirements of
+       6.8(3.2/5-3.4/5)), and issue an error if it's not. The global
+       flag Checking_Potentially_Static_Expression is set and unset
+       around this checking.
+       * sem_ch13.adb (Analyze_Aspect_Static): New procedure to enforce
+       selected requirements of the new aspect Static on expression
+       functions, including checking that the language version is
+       Ada_2020 and that the entity to which it applies is an
+       expression function whose formal parameters are of a static
+       subtype and have mode 'in', its result subtype is a static
+       subtype, and it has no pre- or postcondition aspects. A ???
+       comment is added to indicate the need for adding checking that
+       type invariants don't apply to the result type if the function
+       is a boundary entity.
+       (Analyze_One_Aspect): Call Analyze_Aspect_Static for aspect
+       Static.
+       * sem_elab.adb (Build_Call_Marker): Return without creating a
+       call marker when the subprogram is a static expression function,
+       since no ABE checking is needed for such functions.
+       * sem_eval.ads (Checking_Potentially_Static_Expression): New
+       function to return whether the checking for potentially static
+       expressions is enabled.
+       (Set_Checking_Potentially_Static_Expression): New procedure to
+       enable or disable checking of potentially static expressions.
+       * sem_eval.adb (Checking_For_Potentially_Static_Expression): New
+       global flag for determining whether preanalysis of potentially
+       static expression is being done, which affects the behavior of
+       certain static evaluation routines.
+       (Checking_Potentially_Static_Expression): New function to return
+       whether the checking for potentially static expressions is
+       enabled.
+       (Eval_Call): When evaluating a call within a static expression
+       function with checking of potentially static expression
+       functions enabled, substitutes a static value in place of the
+       call to allow folding of the expression.
+       (Eval_Entity_Name): When evaluating a formal parameter of a
+       static expression function with checking of potentially static
+       expression functions enabled, substitutes a static value in
+       place of the reference to the formal to allow folding of the
+       expression.
+       (Set_Checking_Potentially_Static_Expression): New procedure to
+       enable or disable checking of potentially static expressions.
+       * sem_res.adb (Resolve_Call): Test for a recursive call
+       occurring within a static expression function and issue an error
+       for such a call. Prevent the establishment of a transient scope
+       in the case this is a call to a (string-returning) static
+       expression function. When calling a static expression function,
+       if no error has been posted on the function, call
+       Inline_Static_Expression_Function_Call to convert the call into
+       its equivalent static value.
+       * sem_util.ads (Is_Static_Expression_Function): New function
+       returning whether the subprogram entity passed to it is a static
+       expression function.
+       (Is_Static_Expression_Function_Call): New function to determine
+       whether the call node passed to it is a static call to a static
+       expression function.
+       * sem_util.adb (Compile_Time_Constraint_Error): Suppress
+       compile-time Constraint_Error reporting when checking for a
+       potentially static expression.
+       (Is_Static_Expression_Function): New function returning whether
+       the subprogram entity passed to it is a static expression
+       function by testing for the presence of aspect Static.
+       (Has_All_Static_Actuals): New function in
+       Is_Static_Expression_Function_Call that traverses the actual
+       parameters of a function call and returns True only when all of
+       the actuals are given by static expressions. In the case of a
+       string-returning function, we call Resolve on each actual to
+       ensure that their Is_Static_Expression flag properly reflects
+       whether they're static, to allow suppressing creation of a
+       transient scope within Resolve_Call. A prominent ??? comment is
+       added to explain this rather unconventional call to Resolve.
+       (Is_Static_Expression_Function_Call): New function that
+       determines whether a node passed to it is a call to a static
+       expression function all of whose actual parameters are given by
+       static expressions.
+
+2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Optimize_Length_Comparison): New local variable to
+       record whether this may be a dynamic superflat case.
+       (Is_Optimizable): Accept 0 as lower bound and set it in this case,
+       but return false if the operand is not a length too.
+       (Rewrite_For_Equal_Lengths): New procedure.
+       Optimize the comparison of two lengths in the superflat case when
+       the arrays have the same bounds.
+
+2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_attributes.rst (Bit): Sharpen
+       the comparison with System.Storage_Unit.
+       (Descriptor_Size): Clear confusion about alignment and padding.
+       * gnat_rm.texi: Regenerate.
+
+2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
+       Do not replace the bound for an array type if it is public.
+
+2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Optimize_Length_Comparison): Make sure the base
+       types are the same when comparing Y'Last and X'Last directly.
+
+2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
+       Replace it with a direct reference to an entity which is not a
+       discriminant for constrained array types.  Add same condition
+       for scalar types.
+       <Attribute_Last>: Merge with above implementation.
+       * exp_ch4.adb (Optimize_Length_Comparison): Be prepared for a
+       second entity whose length is compared.  Rename Prepare_64 to
+       Convert_To_Long_Long_Integer.  If the second entity is present,
+       compute the difference of the 'First attributes and compare the
+       sum of 'Last of the second entity with this difference against
+       'Last of the first entity.  Add a special case when the 'First
+       attributes are equal.  Suppress overflow checks in all cases.
+
+2020-06-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst, lib-writ.ads,
+       par-prag.adb, sem_ch12.adb, sem_ch8.adb, sem_prag.adb: Fix
+       casing of GNATprove.
+       * gnat_rm.texi: Regenerate.
+
+2020-06-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * checks.adb (Generate_Range_Check): Simplify redundant
+       condition.
+       * sem_ch3.adb (Check_Initialization, Process_Discriminants):
+       Likewise.
+       * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise.
+
+2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_fixd.adb (Build_Conversion): Also preserve the
+       Conversion_OK flag of an inner conversion.
+
+2020-06-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch5.adb (Analyze_Iterator_Specification): Enable expansion
+       that creates a renaming that removes side effects from the
+       iterated object in the GNATprove mode; then analyze reference to
+       this renaming (it is required for GNATprove and harmless for
+       GNAT).
+
+2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sinfo.ads (Conversion_OK): Document use for 'Pos and 'Val.
+       * exp_attr.adb (Get_Integer_Type): New function returning a
+       small integer type appropriate for an enumeration type.
+       (Expand_N_Attribute_Reference) <Attribute_Enum_Rep>: Call it.
+       <Attribute_Pos>: For an enumeration type with a standard
+       representation, expand to a conversion with Conversion_OK.
+       <Attribute_Val>: Likewise.
+       * exp_ch4.adb (Expand_N_Type_Conversion): Do not expand when
+       the target is an enumeration type and Conversion_OK is set.
+
+2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch4.adb (Common_Type): Go to Underlying_Full_View, if any.
+
+2020-06-16  Richard Kenner  <kenner@adacore.com>
+
+       * exp_unst.adb (Subp_Index): Change way we detect internal
+       protected subprograms.
+
+2020-06-16  Richard Kenner  <kenner@adacore.com>
+
+       * comperr.adb (Compiler_Abort): Clarify message displayed to
+       customers.
+
+2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * checks.adb, doc/gnat_ugn/the_gnat_compilation_model.rst,
+       einfo.ads, exp_ch5.adb, exp_ch7.adb, lib-xref.ads,
+       libgnat/g-spitbo.ads, make.adb, sem_aux.adb, sem_ch3.adb,
+       sem_ch4.adb, sem_ch5.adb, urealp.adb: Fix wrong casing.
+       * gnat_ugn.texi: Regenerate.
+
+2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.adb, exp_spark.adb, exp_util.adb, sem_eval.adb: Replace
+       "Ekind ... in Object_Kind" with "Is_Object (...)".
+
+2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix typo in
+       comment.
+
+2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_util.adb (Evaluate_Name): Force evaluation of aggregates;
+       recursively evaluate expression of a qualified expression; fix
+       location of the comment for an attribute referenced and an
+       indexed component.
+
+2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * freeze.adb (Freeze_Expression): Use consistent style and
+       formatting in a couple of cases.
+
+2020-06-16  Steve Baird  <baird@adacore.com>
+
+       * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Uncomment the
+       commented-out Integer_Literal aspect specification for type
+       Big_Integer.
+
+2020-06-16  Javier Miranda  <miranda@adacore.com>
+
+       * exp_ch6.adb (BIP_Suffix_Kind, Check_BIP_Actuals,
+       Is_Build_In_Place_Entity): New subprograms.
+       (Make_Build_In_Place_Call_In_Allocator,
+       Make_Build_In_Place_Call_In_Anonymous_Context,
+       Make_Build_In_Place_Call_In_Assignment,
+       Make_Build_In_Place_Call_In_Object_Declaration): Add assertions.
+       (Needs_BIP_Task_Actuals): Add missing support for thunks.
+       (Expand_Actuals): Ensure that the BIP call has available an
+       activation chain and the _master variable.
+       * exp_ch9.adb (Find_Enclosing_Context): Initialize the list of
+       declarations of empty blocks when the _master variable must be
+       declared and the list was not available.
+
+2020-06-16  Bob Duff  <duff@adacore.com>
+
+       * par-ch4.adb (P_Case_Expression): Move to be local.
+       (P_Declare_Expression): New parsing routine.
+       (P_Unparen_Cond_Expr_Etc): New name for
+       P_Unparen_Cond_Case_Quant_Expression which was missing one case
+       in its name (iterated component association), and we're adding a
+       new case (declare expression), so lets use "Etc" instead of
+       trying to pack all those things into the name.  Add call to
+       P_Declare_Expression, and check for missing parens.
+       (P_Expression_If_OK, P_Expression_Or_Range_Attribute_If_OK): Add
+       Tok_Declare.
+       * par.adb (P_Basic_Declarative_Items): Add parameter
+       Declare_Expression so we can tailor the error message about
+       incorrect bodies.
+       (P_Case_Expression): Move to body.
+       * par-ch3.adb (P_Basic_Declarative_Items): Tailor the error
+       message about incorrect bodies.
+       * par-ch7.adb (P_Package): Pass Declare_Expression => False to
+       P_Basic_Declarative_Items.
+       * sem.ads (In_Declare_Expr): Counter used to determine whether
+       we are analyzing a declare_expression. Needed to give errors
+       about things that are not allowed in declare_expression, such as
+       the 'Access attribute.
+       * sem.adb (Do_Analyze): Save/restore In_Declare_Expr.
+       * sem_ch4.adb (Analyze_Expression_With_Actions): Give this node
+       its own scope.  That seems better in general, but it is
+       necessary for declare_expressions.  For example, an identifier
+       declared in a declare_expression should not clash with the same
+       identifier in an outer scope.  If this is a declare_expression,
+       indicated by Comes_From_Source, then check legality rules, and
+       incr/decr In_Declare_Expr.
+       * sem_aggr.adb (Resolve_Aggregate): Allow an applicable index
+       constraint for a declare_expression, so if its expression is an
+       array aggregate, it can have "others => ...".
+       * sem_attr.adb (Analyze_Access_Attribute): Disallow these
+       attributes in declare_expressions. Add comment to make it clear
+       that Unrestricted_Access is included.
+       * sinfo.ads, sinfo.adb, atree.ads, atree.adb: Remove the
+       now-incorrect comment in sinfo.ads that says
+       N_Expression_With_Actions has no proper scope.  Add 17-parameter
+       versions of Nkind_In.  Remove the 16-parameter versions of
+       Nkind_In.
+
+2020-06-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_aux.ads, sem_aux.adb (Is_Record_Or_Limited_Type): New
+       function.
+       * exp_ch4.adb, sem_ch4.adb (Analyze_Membership_Op,
+       Expand_Set_Membership.Make_Cond): Choose between primitive and
+       predefined equality for membership tests.
+
+2020-06-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify code and
+       implement AI12-0216 which clarifies the conditions under which
+       overlapping actuals in a call are illegal. If proper warnings
+       are enabled, GNAT also emits warnings in legal cases of
+       overlopping actuals.
+
+2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * freeze.adb (Freeze_Expression): Stop climbing the parent chain
+       at a N_{Case,If}_Expression node for a type or an entity that
+       does not come from source.
+
+2020-06-16  Steve Baird  <baird@adacore.com>
+
+       * snames.ads-tmpl: Define names of the three new aspects.
+       * aspects.ads: Define the three new aspects.
+       * sem_util.ads, sem_util.adb, sem_dim.adb: Move the function
+       String_From_Numeric_Literal from being declared in the body of
+       package Sem_Dim to being declared in the visible part of package
+       Sem_Util.
+       * sem_ch13.ads, sem_ch13.adb: Declare new visible procedure
+       Validate_Literal_Aspect. This is where most of the legality
+       checking occurs for an aspect specification for one of the three
+       new aspects, as well as resolution of the subprogram named in
+       the aspect specification. Follow example of other aspects (e.g.,
+       Validate_Literal_Aspect is called in much the same way as
+       Validate_Iterable_Aspect in Analyze_Aspects_At_Freeze_Point; a
+       small amount of legality checking is performed in
+       Analyze_One_Aspect in much the same way as for Default_Value or
+       Default_Component_Value aspects). Most of the work is done in
+       Validate_Literal_Aspect.
+       * contracts.adb (Add_Contract_Item): Call
+       Validate_Literal_Aspect in much the same way that
+       Validate_Iterable_Aspect was already being called.
+       * sem_res.adb (Resolve): Rewrite a literal as a call if it is a
+       user-defined literal.  This is where the dynamic semantics of
+       the 3 new aspects are implemented.
+       * sem_ch6.adb (Fully_Conformant_Expressions): Two numeric
+       literals that have different text but the same value (e.g.,
+       12345 and 12_345) do not conform if they are user-defined
+       literals. Introduce a new function
+       User_Defined_Numeric_Literal_Mismatch to avoid duplication in
+       making this check.
+       * sem_type.adb (Has_Compatible_Type): A numeric literal can be
+       compatible with a non-numeric type (and a string literal can be
+       compatible with a non-string type) if it can be interpreted as a
+       user-defined literal.
+
+2020-06-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_aggr.adb (Resolve_Extension_Aggregate): Fix implementation
+       of AI05-0115 by checking the correct type.
+
+2020-06-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch6.adb (Analyze_Subprogram_Specification): Generate error
+       message for functions returning interfaces.
+
+2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Membership_Entry): Relax assertion to also
+       recognize qualified identifiers.
+
+2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_util.adb (Evaluate_Name): Force evaluation of operators.
+
+2020-06-16  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch4.adb (Analyze_Membership_Op): Reset entity of equality
+       nodes for membership tests with singletons.
+       (Analyze_User_Defined_Binary_Op): Always perform the analysis
+       since nodes coming from the expander also may refer to non
+       standard operators as part of membership expansion.
+       * exp_ch4.adb (Expand_Set_Membership.Make_Cond): Reset entity of
+       equality node.
+       * sem_type.ads: Fix typo in comment.
+
+2020-06-16  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute): Add
+       Check_Not_Incomplete_Type call.
+
+2020-06-16  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch6.adb: Add closing paren in a comment.
+       * sem_util.adb: Correct comment typo (aggreate => aggregate).
+
+2020-06-16  Javier Miranda  <miranda@adacore.com>
+
+       * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
+       Code cleanup.
+
+2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * freeze.adb (In_Expanded_Body): Remove unreachable code.
+       (Freeze_Expression): Rename a couple of local variables.
+       In the case of an expanded body, also freeze locally the
+       entities declared in a nested block.
+
+2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch4.adb (Transform_Object_Operation): Document that it
+       may be partially destructive for the parent of the node.
+       (Try_Object_Operation): Undo the changes made above on failure.
+
+2020-06-16  Javier Miranda  <miranda@adacore.com>
+
+       * restrict.adb (Global_No_Tasking): Adding
+       Targparm.Restrictions_On_Target Fixes regressions with zfp.
+
+2020-06-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * freeze.adb: (Freeze_Expression, In_Expanded_Body): Treat the
+       generated body of an expression function like other bodies
+       generated during expansion (e.g. stream subprograms) so that
+       those bodies are not treated as freezing points. Handle properly
+       other global references in such completions.
+
+2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch8.adb (Analyze_Object_Renaming): Remove trivially
+       useless initialization of Is_Object_Reference.
+       * sem_util.adb (Is_Object_Reference): Simplify detection of
+       binary and unary operators; literally implement rules about
+       aggregates and qualified expressions; recognize string literals
+       as object references.
+
+2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch12.adb (Validate_Derived_Type_Instance): Reword error
+       message for 12.5.1(8) subclause and add secondary message if
+       the incompatibility comes from the predicates.
+       * sem_ch3.adb (Check_Constraining_Discriminant): New procedure
+       to give the error required by the 3.7(15) subclause.  Mention
+       "statically" in the error message and add secondary message
+       if the incompatibility comes from the predicates.
+       (Build_Derived_Concurrent_Type): Call it when a new discriminant
+       constrains an old one.
+       (Build_Derived_Record_Type): Likewise.
+       * sem_eval.ads (Predicates_Compatible): Declare.
+       * sem_eval.adb (Predicates_Compatible): New function to implement
+       the compatibility of predicates specified by the 4.9.1 clause.
+       (Subtypes_Statically_Compatible): Call it.
+
 2020-06-15  Eric Botcazou  <ebotcazou@adacore.com>
 
        * sem_eval.ads (Predicates_Match): Fix description.
 
        * gnatvsn.ads: Bump Library_Version to 11.
 
-2020-05-26  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+2020-05-26  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR ada/95333
        * gcc-interface/decl.c (gnat_to_gnu_param): Never make a variant of