]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/ada/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ada / ChangeLog
index f125850ccdbefb527bce9cd9edcb1acddbfa8c8a..14a8c589867e0eabdba70af121135d66a473eb7c 100644 (file)
-2020-06-09  Javier Miranda  <miranda@adacore.com>
-
-       * sem_ch6.adb (New_Overloaded_Entity): Add missing call to check
-       subtype conformance of overriding dispatching primitive.
-       * sem_eval.adb (Subtypes_Statically_Match): Handle derivations
-       of private subtypes.
-       * libgnat/g-exptty.adb, libgnat/g-exptty.ads
-       (Set_Up_Communications): Fix the profile since null-exclusion is
-       missing in the access type formals.
-       * sem_disp.ads (Check_Operation_From_Private_View): Adding
-       documentation.
-
-2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * einfo.ads (XEINFO section): Update format description.
-       (Is_Subprogram_Or_Entry): Move pragma to regular section.
-       (Is_Subprogram_Or_Generic_Subprogram): Likewise.
-       * xeinfo.adb (Get_B4): Rename to...
-       (Get_B0): ...this.
-       (Translate_Expr): New procedure extracted from...
-       (XEinfo): ...here.  Try to apply Get_B0 first and then
-       call Translate_Expr to translate supported constructs.
-
-2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_ch6.adb (Freeze_Subprogram): Deal with convention C_Family.
-       * freeze.adb (Freeze_Profile): Likewise.  Add missing guard.
-       * sem_mech.adb (Set_Mechanisms): Likewise.
-       * lib-xref.adb (Output_Import_Export_Info): Ditto for C_Variadic.
-       * repinfo.adb (List_Subprogram_Info): Likewise.
-       * sem_prag.adb (Set_Convention_From_Pragma): Move main checks for
-       Stdcall to...
-       (Process_Convention): ...here.  Add checks for C_Variadic.
-       * snames.ads-tmpl: Add Name_C_Variadic_0 .. Name_C_Variadic_16.
-       Use consistent format for subtype declarations.
-       (Convention_Id): Add Convention_C_Variadic_0 .. C_Variadic_16
-       and move Convention_CPP up.
-       (Convention_C_Family): New subtype of Convention_Id.
-       (Convention_C_Variadic): Likewise.
-       (Foreign_Convention): Use explicit upper bound.
-       Add pragma Inline for Is_Configuration_Pragma_Name,
-       Is_Function_Attribute_Name, Is_Internal_Attribute_Name
-       and Is_Procedure_Attribute_Name.
-       * snames.adb-tmpl (Get_Convention_Id): Deal with Name_Variadic_n.
-       (Get_Convention_Name): Deal with Convention_Variadic_n.
-       * types.h (Convention_Id): New typedef.
-       * xsnamest.adb (Name2): New variable.
-       (Is_Conv): New pattern.
-       (Get_Subt1): Likewise.
-       (Get_Subt2): Likewise.
-       Output subtypes of Convention_Id into the C header file.
-
-2020-06-09  Arnaud Charlet  <charlet@adacore.com>
-
-       * exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch9.adb,
-       exp_disp.adb, exp_util.adb: Add comments related to errors that
-       should be moved to semantic analysis. Also replace "?" with "??"
-       in warning messages.
-
-2020-06-09  Arnaud Charlet  <charlet@adacore.com>
-
-       * libgnat/a-strunb__shared.ads, libgnat/a-strunb__shared.adb
-       (Reference, Unreference): No-op for Empty_Shared_String.
-       Remove unneeded calls to Reference.
-
-2020-06-09  Arnaud Charlet  <charlet@adacore.com>
-
-       * exp_ch5.adb (Expand_N_Assignment): Remove kludge for
-       AI05-0087.
-       * sem_ch12.adb (Validate_Derived_Type_Instance): Implement
-       AI05-0087 retroactively since it's a binding interpretation.
-
-2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * einfo.ads (Has_Foreign_Convention): Fix description.
-       (Component_Alignment): Move around.
-       (Has_DIC): Likewise.
-       (Has_Interrupt_Handler): Likewise.
-       (Has_Invariants): Likewise.
-       (Is_Atomic_Or_VFA): Likewise.
-       (Next_Index): Likewise.
-       (Scope_Depth): Likewise.
-       (Init_Component_Size): Likewise.
-       (Init_Component_Location): Likewise.
-       (Init_Size): Likewise.
-       (Inline Pragmas for functions): Add Corresponding_Function,
-       Corresponding_Procedure, Entry_Max_Queue_Lengths_Array,
-       Finalize_Storage_Only, Has_DIC, Has_Invariants,
-       Initialization_Statements, Is_Anonymous_Access_Type,
-       Next_Stored_Discriminant, Address_Clause, Alignment_Clause,
-       Float_Rep, Has_Foreign_Convention, Has_Non_Limited_View,
-       Is_Constant_Object, Is_Discriminal, Is_Finalizer, Is_Null_State,
-       Is_Prival, Is_Protected_Component, Is_Protected_Record_Type,
-       Is_Subprogram_Or_Entry, Is_Task_Record_Type, Size_Clause,
-       Stream_Size_Clause, Type_High_Bound, Type_Low_Bound, Known_*,
-       Unknown_*.
-       (Inline Pragmas for procedures): Add Set_Corresponding_Function,
-       Set_Corresponding_Procedure, Set_Finalize_Storage_Only,
-       Set_Float_Rep, Set_Initialization_Statements,
-       Init_Normalized_First_Bit, Init_Normalized_Position,
-       Init_Normalized_Position_Max.
-       * einfo.adb (Was_Hidden): Move around.
-       (Is_Packed_Array): Likewise.
-       (Model_Emin_Value): Likewise.
-       (Model_Epsilon_Value): Likewise.
-       (Model_Mantissa_Value): Likewise.
-       (Model_Small_Value): Likewise.
-
-2020-06-09  Ed Schonberg  <schonberg@adacore.com>
-
-       * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
-       exact match between formal and actual for aspects Atomic and
-       Volatile only for formal derived types.
-
-2020-06-09  Arnaud Charlet  <charlet@adacore.com>
-
-       * exp_util.adb (Side_Effect_Free): Improve handling of
-       N_Aggregate.
-
-2020-06-09  Ghjuvan Lacambre  <lacambre@adacore.com>
-
-       * sem_res.adb (Resolve_Qualified_Expression): Use Subtype_Mark
-       type.
-
-2020-06-09  Arnaud Charlet  <charlet@adacore.com>
-
-       * exp_aggr.adb (Max_Aggregate_Size): New function to factorize
-       code.
-       (Convert_To_Positional, Aggr_Size_OK): Use Max_Aggregate_Size.
-
-2020-06-09  Arnaud Charlet  <charlet@adacore.com>
-
-       * sem_util.ads, sem_util.adb (Set_Debug_Info_Defining_Id): New.
-       * exp_ch3.adb, exp_ch8.adb: Call Set_Debug_Info_Defining_Id when
-       relevant.
-
-2020-06-09  Justin Squirek  <squirek@adacore.com>
-
-       * einfo.ads (Returns_By_Ref): Modify documentation to reflect
-       that Returns_By_Ref can be applied to E_Subprogram_Type
-       entities.
-
-2020-06-09  Justin Squirek  <squirek@adacore.com>
-
-       * exp_attr.adb (Expand_N_Attribute_Reference): Modify expansion
-       of 'Overlaps_Storage to take into account zero sized arrays.
+2021-05-25  Martin Liska  <mliska@suse.cz>
+
+       * doc/share/conf.py: Fix Sphinx 4.0.x error.
+
+2021-05-21  Piotr Trojanek  <trojanek@adacore.com>
+
+       * gcc-interface/trans.c (Raise_Error_to_gnu): Add an assertion.
+
+2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils.c (gnat_pushdecl): Fix typo in comment.
+       * gcc-interface/utils2.c (build_simple_component_ref): Build NULL_EXPR
+       if the offset of the field has overflowed.
+       (build_component_ref): Add gigi checking assertion that the reference
+       has been built and replace the discriminant check by a Program_Error.
+
+2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Named_Integer>: Do
+       not pass default value in call to create_var_decl.
+       <E_Variable>: Likewise.
+       <E_Record_Subtype>: Both pass true for const_flag and false for
+       const_decl_allowed_p in call to create_var_decl.
+       Small tweaks in the generic record type case.
+       (elaborate_expression): Rename need_debug into need_for_debug and
+       adjust throughout.
+       (elaborate_expression_1): Likewise.  Pass Needs_Debug_Info instead
+       of need_for_debug in call to create_var_decl.
+       (elaborate_expression_2): Likewise.
+       * gcc-interface/utils.c (maybe_pad_type): Pass false for
+       const_decl_allowed_p in call to create_var_decl.
+
+2021-05-21  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity): Replace ? with ??.
+       (gnat_to_gnu_param): Likewise.
+       (gnat_to_gnu_subprog_type): Likewise.
+       (warn_on_field_placement): Likewise.
+       (intrin_arglists_compatible_p): Likewise.
+       * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
+       (gnat_to_gnu): Likewise.
+       (validate_unchecked_conversion): Likewise.
+       * gcc-interface/utils.c (maybe_pad_type): Likewise.
 
-2020-06-09  Bob Duff  <duff@adacore.com>
+2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * bindo-graphs.adb, bindo-graphs.ads: For each invocation graph,
-       record the corresponding library graph.
-       * bindo-writers.adb (Write_Invocation_Graph_Vertex): Print the
-       lib item name. Remove library graph parameters.
-       * bindo-augmentors.adb, bindo-augmentors.ads,
-       bindo-builders.adb, bindo-diagnostics.adb,
-       bindo-diagnostics.ads, bindo-elaborators.adb: Remove library
-       graph parameters.
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Process
+       the implementation type of a packed type implemented specially.
 
-2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * checks.adb (Apply_Predicate_Check): Extend trick used for
-       aggregates to qualified aggregates and object declarations
-       * einfo.ads (Has_Own_DIC): Mention the underlying full view.
-       (Has_Own_Invariants): Likewise.
-       (Has_Predicates): Likewise.
-       * exp_util.adb (Build_DIC_Procedure_Declaration): Do not deal
-       with base types explicitly but with underlying full views.
-       (Build_Invariant_Procedure_Declaration): Likewise.
-       * sem_ch13.adb (Build_Predicate_Functions): Do not deal with
-       the full view manually but call Propagate_Predicate_Attributes
-       to propagate attributes to views.
-       (Build_Predicate_Function_Declaration): Likewise.
-       * sem_ch3.adb (Build_Assertion_Bodies_For_Type): Build bodies
-       for private full views with an underlying full view.
-       (Build_Derived_Private_Type): Small comment tweak.
-       (Complete_Private_Subtype): Call Propagate_Predicate_Attributes.
-       (Process_Full_View): Do not deal with base types explicitly for
-       DIC and Invariant attributes.  Deal with underlying full views
-       for them.  Call Propagate_Predicate_Attributes and deal with
-       underlying full views for them.
-       * sem_ch7.adb (Preserve_Full_Attributes): Do not cross propagate
-       DIC and Invariant attributes between full type and its base type.
-       Propagate Predicate attributes from the full to the private view.
-       * sem_ch9.adb (Analyze_Protected_Type_Declaration): Likewise.
-       (Analyze_Task_Type_Declaration): Likewise.
-       * sem_util.ads (Get_Views): Remove Full_Base parameter and add
-       UFull_Typ parameter.
-       (Propagate_Predicate_Attributes): New procedure.
-       * sem_util.adb (Get_Views): Remove Full_Base parameter and add
-       UFull_Typ parameter.  Retrieve the Corresponding_Record_Type
-       from the underlying full view, if any.
-       (Propagate_DIC_Attributes): Remove useless tests.
-       (Propagate_Invariant_Attributes): Likewise.
-       (Propagate_Predicate_Attributes): New procedure.
+2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
 
-2020-06-09  Justin Squirek  <squirek@adacore.com>
+       * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Always translate
+       the Is_Pure flag into the "pure" attribute of GNU C.
 
-       * exp_ch5.adb (Expand_Predicated_Loop): Perserve the original
-       loop identifier within the expansion.
+2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
 
-2020-06-09  Bob Duff  <duff@adacore.com>
+       * gcc-interface/trans.c (Call_to_gnu): Restrict previous change
+       to bitfields whose size is not equal to the type size.
+       (gnat_to_gnu): Likewise.
 
-       * bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder enumerals
-       to reflect the order of adding edges. Clarify comments.
-       * bindo-graphs.adb (Add_Edge_Kind_Check): Correct the
-       assertions.  Reorder the "when"s to match the order of adding
-       edges, and therefore the order of enumerals in type
-       Library_Graph_Edge_Kind.  Change names to "Old_" and "New_" to
-       clarify what's what.  Combine Invocation_Edge into the "<="
-       test.  Fix the "raise Program_Error" message, which was
-       backwards.
+2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
 
-2020-06-09  Bob Duff  <duff@adacore.com>
+       * gcc-interface/trans.c (Call_to_gnu): Minor tweaks.
+       (gnat_to_gnu_external): Likewise.
+       (Raise_Error_to_gnu): Return an empty statement list if there is a
+       condition and it is always false.
+       (gnat_to_gnu): Do not check for elaboration code a priori during the
+       translation but a posteriori instead.
 
-       * bindo-graphs.adb (Add_Edge_Kind_Check): Add the Image of the
-       old and new Kinds to the raise Program_Error message.
+2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
 
-2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
+       * gcc-interface/trans.c (gnat_to_gnu) <N_Simple_Return_Statement>:
+       Put a SLOC on the assignment from the return value to the return
+       object in the copy-in/copy-out case.
 
-       * sem_ch3.adb (Is_Visible_Component): Do not special-case
-       bodies of instances.
+2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
 
-2020-06-09  Arnaud Charlet  <charlet@adacore.com>
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Replace
+       CEIL_DIV_EXPR with EXACT_DIV_EXPR.
+       * gcc-interface/misc.c (gnat_type_max_size): Likewise.
+       * gcc-interface/utils.c (maybe_pad_type): Likewise.
+       (finish_record_type): Likewise.  And always compute the unit size.
 
-       * exp_ch4.adb (Expand_N_In): Fix handling of null exclusion.
+2021-05-14  Martin Liska  <mliska@suse.cz>
 
-2020-06-09  Ed Schonberg  <schonberg@adacore.com>
+       * doc/Makefile: Add gnat-style target.
+       * doc/share/conf.py: Likewise.
+       * doc/gnat-style.rst: New file.
 
-       * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
-       exact match between formal and actual for aspects Atomic,
-       Atomic_Component, Volatile, and Volatile_Components.
+2021-05-12  Bob Duff  <duff@adacore.com>
 
-2020-06-09  Bob Duff  <duff@adacore.com>
+       PR ada/100564
+       * atree.adb (Change_Node): Do not call Zero_Slots on a Node_Id
+       when the Nkind has not yet been set; call the other Zero_Slots
+       that takes a range of slot offsets.  Call the new Mutate_Kind
+       that takes an Old_Size, for the same reason -- the size cannot
+       be computed without the Nkind.
+       (Mutate_Nkind): New function that allows specifying the Old_Size.
+       (Size_In_Slots): Assert that the Nkind has proper (nonzero) value.
+       * atree.ads: Minor reformatting.
+
+2021-05-12  Martin Liska  <mliska@suse.cz>
+
+       * doc/share/conf.py: Do not use binary mode.
+       Do not use u' literals as Python3 uses unicode by default.
+
+2021-05-11  Martin Liska  <mliska@suse.cz>
+
+       * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): Use builtins
+       from COROUTINES.
+       (BUILT_IN_UNLIKELY): Likewise.
+
+2021-05-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gnatvsn.adb (Version_String): Rename to...
+       (C_Version_String): ...this.
+       (Gnat_Version_String): Adjust to above renaming.
+       * version.c : Fix formatting glitches.
+
+2021-05-10  Martin Liska  <mliska@suse.cz>
+
+       PR bootstrap/100506
+       * Make-generated.in: Replace version.c with ada/version.c.
+       * gcc-interface/Make-lang.in: Add version.o to GNAT1_C_OBJS and
+       GNATBIND_OBJS.
+       * gcc-interface/Makefile.in: Replace version.c with ada/version.c.
+       Add version.o to TOOLS_LIBS.
+       * gnatvsn.adb: Replace version_string with gnat_version_string.
+       * version.c: New file.
+
+2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo-utils.ads (Classification Attributes): Add pragma Inline.
+       (Synthesized Attribute Functions): Move pragma Inline around.
+       (Type Representation Attribute Predicates): Likewise.
+       (Field Initialization Routines): Likewise.
+       (Miscellaneous Subprogram): Likewise.
+
+2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * atree.ads (Slot): Remove pragma Provide_Shift_Operators.
+       (Shift_Left): New intrinsic function.
+       (Shift_Right): Likewise.
+       * atree.adb (Get_1_Bit_Val): Use Natural instead of Integer.
+       (Get_2_Bit_Val): Likewise.
+       (Get_4_Bit_Val): Likewise.
+       (Get_8_Bit_Val): Likewise.
+       (Set_1_Bit_Val): Likewise.
+       (Set_2_Bit_Val): Likewise.
+       (Set_4_Bit_Val): Likewise.
+       (Set_8_Bit_Val): Likewise.
+
+2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * atree.adb (Zero_Slots): Remove obsolete comment and add header.
+
+2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * atree.h (Get_32_Bit_Field): Tidy up.
+       (Get_32_Bit_Field_With_Default): Likewise.
+
+2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Make-generated.in (do_gen_il): Replace with...
+       (ada/stamp-gen_il): ...this.  Do not copy files into generated/.
+
+2021-05-10  Martin Liska  <mliska@suse.cz>
+
+       * gcc-interface/utils.c (def_builtin_1): Use startswith
+       function instead of strncmp.
+
+2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo-utils.adb (Is_Access_Object_Type): Use
+       Directly_Designated_Type.
+       (Is_Access_Subprogram_Type): Use Directly_Designated_Type.
+       (Set_Convention): Use plain Ekind.
+       * gen_il-gen-gen_entities.adb (Type_Kind): Use plain Ekind.
+       * sem_ch3.adb (Access_Type_Declaration): When seeing an illegal
+       completion with an access type don't attempt to decorate the
+       completion entity; previously the entity had its Ekind set to
+       E_General_Access_Type or E_Access_Type, but its Designated_Type
+       was empty, which caused a crash in freezing. (Actually, the
+       error recovery in the surrounding context is still incomplete,
+       e.g. we will crash when the illegal completion is an access to
+       an unknown identifier).
+
+2021-05-07  Bob Duff  <duff@adacore.com>
+
+       * par_sco.adb: Align with/use clauses.
+       (Traverse_Declarations_Or_Statements): Minor comment fix.
+       * aspects.adb, atree.adb, atree.ads, checks.adb, comperr.adb,
+       contracts.adb, cstand.adb, debug_a.adb, einfo-utils.adb,
+       errout.adb, eval_fat.adb, exp_aggr.adb, expander.adb,
+       exp_atag.adb, exp_attr.adb, exp_cg.adb, exp_ch11.adb,
+       exp_ch12.adb, exp_ch13.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_code.adb, exp_dbug.adb, exp_disp.adb,
+       exp_dist.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb,
+       exp_pakd.adb, exp_prag.adb, exp_put_image.adb, exp_sel.adb,
+       exp_smem.adb, exp_spark.adb, exp_strm.adb, exp_tss.adb,
+       exp_unst.adb, exp_util.adb, exp_util.ads, freeze.adb,
+       frontend.adb, ghost.adb, gnat1drv.adb, gnat_cuda.adb,
+       impunit.adb, inline.adb, itypes.adb, itypes.ads, layout.adb,
+       lib.adb, lib-load.adb, lib-writ.adb, lib-xref.adb,
+       lib-xref-spark_specific.adb, live.adb, nlists.adb, par.adb,
+       par-ch11.adb, par-ch3.adb, par-ch5.adb, par-ch6.adb, pprint.adb,
+       repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, scn.adb,
+       sem.adb, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_case.adb,
+       sem_cat.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb,
+       sem_ch13.adb, sem_ch2.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_smem.adb,
+       sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
+       sinfo-cn.adb, sinfo-utils.ads, sinput.adb, sinput-l.adb,
+       sprint.adb, style.adb, styleg.adb, tbuild.adb, tbuild.ads,
+       treepr.adb, uname.adb: Align with/use clauses.
+
+2021-05-07  Bob Duff  <duff@adacore.com>
+
+       * atree.ads, atree.adb, gen_il-gen.ads: Fix comments and clean
+       up ???  marks.  Rename Set_Ekind to be Mutate_Ekind.
+       * einfo.ads, sinfo.ads: Likewise.  Change "definitive
+       definition" to "official definition", because the former sounds
+       redundant.  Rename Set_Ekind to be Mutate_Ekind.
+       * checks.adb, contracts.adb, cstand.adb, exp_aggr.adb,
+       exp_attr.adb, exp_ch11.adb, exp_ch3.adb, exp_ch5.adb,
+       exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_disp.adb,
+       exp_dist.adb, exp_imgv.adb, exp_intr.adb, exp_prag.adb,
+       exp_unst.adb, exp_util.adb, gen_il-gen.adb, inline.adb,
+       lib-writ.adb, lib-xref-spark_specific.adb, sem_aggr.adb,
+       sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb,
+       sem_ch3.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
+       sem_ch9.adb, sem_dist.adb, sem_elab.adb, sem_prag.adb,
+       sem_util.adb: Rename Set_Ekind to be Mutate_Ekind.
+
+2021-05-07  Bob Duff  <duff@adacore.com>
+
+       * atree.adb: Move nnd-related code from here, and leave a
+       comment pointing to sinfo-utils.adb.
+       * sinfo-utils.ads, sinfo-utils.adb: Move nnd-related code to
+       here.
+
+2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.ads: Move Corresponding_Protected_Entry...
+       * sinfo.ads: ... here.
+       * exp_ch9.adb (Build_Entry_Body): Link procedure and entry
+       bodies.
+       * gen_il-fields.ads (Opt_Field_Enum): Add
+       Corresponding_Entry_Body field to nodes; remove
+       Corresponding_Protected_Entry field from entities.
+       * gen_il-gen-gen_entities.adb (Gen_Entities): Remove
+       Corresponding_Protected_Entry field from E_Void and
+       E_Subprogram_Body.
+       * gen_il-gen-gen_nodes.adb (Gen_Nodes): Add
+       Corresponding_Entry_Body field to N_Subprogram_Body.
+       * sem_ch6.adb (Analyze_Subprogram_Specification): Remove
+       manipulation of Ekind and Corresponding_Protected_Entry added as
+       part of the support for varsize-nodes.
+
+2021-05-07  Bob Duff  <duff@adacore.com>
+
+       * sem_ch3.adb (Process_Incomplete_Dependents): Reset
+       Private_Dependents field to zero before calling Set_Ekind.  Also
+       move Set_Etype to after Set_Ekind, because it's always best to
+       set the Ekind as early as possible.
+       * atree.adb: Improve debugging facilities for vanishing fields.
+
+2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * atree.ads (Slot): Change to modular type.
+       (Slot_1_Bit): Delete.
+       (Slot_2_Bit): Likewise.
+       (Slot_4_Bit): Likewise.
+       (Slot_8_Bit): Likewise.
+       (Slot_32_Bit): Likewise.
+       * atree.adb (Get_1_Bit_Val): Adjust to above change.
+       (Get_2_Bit_Val): Likewise.
+       (Get_4_Bit_Val): Likewise.
+       (Get_8_Bit_Val): Likewise.
+       (Get_32_Bit_Val): Likewise.
+       (Set_1_Bit_Val): Likewise.
+       (Set_2_Bit_Val): Likewise.
+       (Set_4_Bit_Val): Likewise.
+       (Set_8_Bit_Val): Likewise.
+       (Set_32_Bit_Val): Likewise.
+       (Print_Atree_Info): Likewise.
+       (Zero): Likewise.
+       * atree.h (Get_1_Bit_Field): Likewise.
+       (Get_2_Bit_Field): Likewise.
+       (Get_4_Bit_Field): Likewise.
+       (Get_8_Bit_Field): Likewise.
+       (Get_32_Bit_Field): Likewise.
+       (Get_32_Bit_Field_With_Default): Likewise.
+       * types.h (slot_1_bit): Delete.
+       (slot_2_bit): Likewise.
+       (slot_4_bit): Likewise.
+       (slot_8_bit): Likewise.
+       (slot_32_bit): Likewise.
+       (any_slot): Change to unsigned int.
+       (Slot_Size): New macro.
+
+2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/gigi.h (enum standard_datatype): Remove
+       ADT_exception_data_name_id and add ADT_not_handled_by_others_name_id.
+       (exception_data_name_id): Delete.
+       (not_handled_by_others_name_id): New macro.
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Exception>: Remove old
+       kludge for exceptions.
+       <E_Record_Type>: Likewise.
+       (gnat_to_gnu_field): Force character type on Not_Handled_By_Others.
+       * gcc-interface/misc.c (gnat_argv): Change type to char **.
+       (gnat_init_options): Adjust accordingly.
+       * gcc-interface/trans.c (gigi): Set not_handled_by_others_name_id
+       and use it to set not_handled_by_others_decl.
+       (Exception_Handler_to_gnu_fe_sjlj): Fix indentation.
+
+2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * raise-gcc.c (__gnat_others_value): Remove const qualifier.
+       (__gnat_all_others_value): Likewise.
+       (__gnat_unhandled_others_value): Likewise.
+       (GNAT_OTHERS): Cast to Exception_Id instead of _Unwind_Ptr.
+       (GNAT_ALL_OTHERS): Likewise.
+       (GNAT_UNHANDLED_OTHERS): Likewise.
+       (Is_Handled_By_Others): Change parameter type to Exception_Id.
+       (Language_For): Likewise.
+       (Foreign_Data_For): Likewise.
+       (is_handled_by): Likewise.  Adjust throughout, remove redundant
+       line and fix indentation.
+       * libgnat/a-exexpr.adb (Is_Handled_By_Others): Remove pragma and
+       useless qualification from parameter type.
+       (Foreign_Data_For): Likewise.
+       (Language_For): Likewise.
+
+2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-stalib.ads (Exception_Data): Mark components as aliased.
+       * stand.ads (Standard_Entity_Type): Enhance comments.
+       * cstand.adb (Make_Component): Rename into...
+       (Make_Aliased_Component): ...this; set Is_Aliased and Is_Independent
+       flags on the component.
+       (Create_Standard): Adjust the types of the component of the record
+       Standard_Exception_Type and mark them as aliased.
+       * exp_ch11.adb (Expand_N_Exception_Declaration): Use OK
+       conversion to Standard_Address for Full_Name component, except
+       in CodePeer_Mode (set it to 0).
+       * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Likewise.
+       * raise.h (struct Exception_Data): Change the type of Full_Name,
+       HTable_Ptr and Foreign_Data.
+
+2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * atree.h (Slots_Ptr): Change pointed-to type to any_slot.
+       * fe.h (Get_RT_Exception_Name): Change type of parameter.
+       * namet.ads (Name_Entry): Mark non-boolean components as aliased,
+       reorder the boolean components and add an explicit Spare component.
+       * namet.adb (Name_Enter): Adjust aggregate accordingly.
+       (Name_Find): Likewise.
+       (Reinitialize): Likewise.
+       * namet.h (struct Name_Entry): Adjust accordingly.
+       (Names_Ptr): Use correct type.
+       (Name_Chars_Ptr): Likewise.
+       (Get_Name_String): Fix declaration and adjust to above changes.
+       * types.ads (RT_Exception_Code): Add pragma Convention C.
+       * types.h (Column_Number_Type): Fix original type.
+       (slot): Rename union type to...
+       (any_slot): ...this and adjust assertion accordingly.
+       (RT_Exception_Code): New enumeration type.
+       * uintp.ads (Uint_Entry): Mark components as aliased.
+       * uintp.h (Uints_Ptr):  Use correct type.
+       (Udigits_Ptr): Likewise.
+       * gcc-interface/gigi.h (gigi): Adjust name and type of parameter.
+       * gcc-interface/cuintp.c (UI_To_gnu): Adjust references to Uints_Ptr
+       and Udigits_Ptr.
+       * gcc-interface/trans.c (Slots_Ptr): Adjust pointed-to type.
+       (gigi): Adjust type of parameter.
+       (build_raise_check): Add cast in call to Get_RT_Exception_Name.
+
+2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * init.c (__gnat_raise_program_error): Fix parameter type.
+       (Raise_From_Signal_Handler): Likewise and mark as no-return.
+       * raise-gcc.c (__gnat_others_value): Fix type.
+       (__gnat_all_others_value): Likewise.
+       (__gnat_unhandled_others_value): Likewise.
+       * seh_init.c (Raise_From_Signal_Handler): Fix parameter type.
+       * libgnat/a-except.ads (Raise_From_Signal_Handler): Use convention C
+       and new symbol name, move declaration to...
+       (Raise_From_Controlled_Operation): Minor tweak.
+       * libgnat/a-except.adb (Raise_From_Signal_Handler): ...here.
+       * libgnat/a-exexpr.adb (bool): New C compatible boolean type.
+       (Is_Handled_By_Others): Use it as return type for the function.
+
+2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * errout.ads (Set_Identifier_Casing): Add pragma Convention C.
+       * eval_fat.ads (Rounding_Mode): Likewise.
+       (Machine): Add WARNING comment line.
+       * exp_code.ads (Clobber_Get_Next): Add pragma Convention C.
+       * fe.h (Compiler_Abort): Fix return type.
+       (Set_Identifier_Casing): Change type of parameters.
+       (Clobber_Get_Next): Change return type.
+       * gcc-interface/trans.c (gnat_to_gnu) <N_Code_Statement>: Add cast.
+
+2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * atree.h (Parent): Remove duplicate declaration.
+       (Get_1_Bit_Field): Also use INLINE specifier in the declaration,
+       fix formatting and use gcc_unreachable for the default case.
+       (Get_2_Bit_Field): Likewise.
+       (Get_4_Bit_Field): Likewise.
+       (Get_8_Bit_Field): Likewise.
+       (Get_32_Bit_Field): Likewise.
+       (Get_32_Bit_Field_With_Default): Likewise.
+
+2021-05-07  Bob Duff  <duff@adacore.com>
+
+       * atree.ads, atree.adb: Major rewrite to support variable-sized
+       node types. Add pragmas Suppress and Assertion_Policy.  We now
+       have an extra level of indirection: Node_Offsets is a table
+       mapping Node_Ids to the offset of the start of each node in
+       Slots. Slots is a table containing one or more contiguous slots
+       for each node. Each slot is a 32-bit unchecked union that can
+       contain any mixture of 1, 2, 4, 8, and 32-bit fields that fits.
+       The old low-level getters and setters (e.g.  Flag123) are
+       removed.
+       * gen_il-fields.ads, gen_il-gen-gen_entities.adb,
+       gen_il-gen-gen_nodes.adb, gen_il-gen.adb, gen_il-gen.ads,
+       gen_il-main.adb, gen_il-types.ads, gen_il-utils.adb,
+       gen_il-utils.ads, gen_il.adb, gen_il.ads: New gen_il program
+       that generates various Ada and C++ files. In particular, the
+       following files are generated by gen_il: einfo-entities.adb
+       einfo-entities.ads, gnatvsn.ads, nmake.adb, nmake.ads,
+       seinfo.ads, seinfo_tables.adb, seinfo_tables.ads,
+       sinfo-nodes.adb, sinfo-nodes.ads, einfo.h, and sinfo.h.
+       * sinfo-utils.adb, sinfo-utils.ads, einfo-utils.adb,
+       einfo-utils.ads: New files containing code that needs to refer
+       to Sinfo.Nodes and Einfo.Entities. This code is mostly moved
+       here from Sinfo and Einfo to break cycles.
+       * back_end.adb: Pass node_offsets_ptr and slots_ptr to gigi,
+       instead of nodes_ptr and flags_ptr. The Nodes and Flags tables
+       no longer exist. (Note that gigi never used the Flags table.)
+       * sinfo-cn.ads (Change_Identifier_To_Defining_Identifier,
+       Change_Character_Literal_To_Defining_Character_Literal,
+       Change_Operator_Symbol_To_Defining_Operator_Symbol): Turn N into
+       an IN formal.
+       * sinfo-cn.adb: Update.  Add assertions, which can be removed at
+       some point.  Rewrite to use higher-level facilities.  Make sure
+       vanishing fields are zeroed out.  Add with/use for new packages.
+       * sem_util.adb: Remove "Assert(False)" immediately followed by
+       "raise Program_Error".  Use higher-level facilities such as
+       Walk_Sinfo_Fields instead of depending on low-level Set_FieldN
+       routines that no longer exist. Use Get_Comes_From_Source_Default
+       instead of Default_Node.Comes_From_Source (Default_Node no
+       longer exists).  Use Set_Basic_Convention instead of
+       Basic_Set_Convention.  Add with/use for new packages.
+       * sem_util.ads: The Convention field had getter Convention and
+       setter Basic_Set_Convention. Make that more uniform: there is
+       now a field called Basic_Convention, with Basic_Convention and
+       Set_Basic_Convention as getter/setter, and write Convention and
+       Set_Convention here.
+       * nlists.adb: Rewrite to use abstractions, rather then depending
+       on low-level implementation details of Atree. Necessary because
+       those details have changed. Add with/use for new packages.
+       * sem_ch12.adb: Use higher-level facilities such as
+       Walk_Sinfo_Fields instead of depending on low-level Set_FieldN
+       routines that no longer exist. Add with/use for new packages.
+       * exp_cg.adb, sem_ch10.adb, sem_ch4.adb, sem_eval.adb,
+       sem_prag.adb, sem_warn.adb: Change expanded names to refer to
+       the new packages for things that moved. Add with/use for new
+       packages.
+       * sem_ch3.adb: Likewise. Reinitialize vanishing fields.
+       * exp_disp.adb: Likewise. Remove failing assertion.
+       * sinfo.ads, einfo.ads: Remove code that is now generated into
+       Sinfo.Nodes and Einfo.Entities.
+       * sinfo.adb, einfo.adb: Replace bodies with "pragma No_Body;".
+       We should delete these at some point, but No_Body makes make
+       files easier. Some code is moved to Sinfo.Nodes, Einfo.Entities,
+       Sinfo.Utils, and Einfo.Utils. Some is no longer necessary.
+       * treepr.adb: Rewrite to use new tables. We no longer need
+       treeprs.ads.
+       * treepr.ads: Add comment.
+       * types.ads: Move types Component_Alignment_Kind and
+       Float_Rep_Kind here.
+       * atree.h: Major update to match atree.ads changes.  Add slot
+       types, for use by getters/setters.
+       * types.h: Move types Component_Alignment_Kind and
+       Float_Rep_Kind here.
+       * fe.h: Rewrite to deal with code that has changed or moved from
+       Atree, Sinfo, Einfo.
+       * nlists.h: Move some code to fe.h.
+       * alloc.ads: Split Nodes_* constants into Node_Offsets and
+       Slots, because Atree has two separate tables.  Increase values.
+       Remove Nodes_Release_Threshold. Improve comment.
+       * debug.adb, gnat1drv.adb: Remove obsolete gnatd.A and gnatd.N
+       switches.  Add with/use for new packages.
+       * opt.ads: Minor comment fix.
+       * aspects.adb, checks.adb, comperr.adb, contracts.adb,
+       cstand.adb, debug_a.adb, errout.adb, eval_fat.adb, exp_aggr.adb,
+       exp_atag.adb, exp_attr.adb, exp_ch11.adb, exp_ch12.adb,
+       exp_ch13.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_code.adb, exp_dbug.adb, exp_dist.adb, exp_fixd.adb,
+       exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb,
+       exp_put_image.adb, exp_sel.adb, exp_smem.adb, exp_spark.adb,
+       exp_strm.adb, exp_tss.adb, exp_unst.adb, exp_util.adb,
+       exp_util.ads, expander.adb, freeze.adb, frontend.adb,
+       get_targ.ads, ghost.adb, gnat_cuda.adb, impunit.adb, inline.adb,
+       itypes.adb, itypes.ads, layout.adb, lib.adb, lib-load.adb,
+       lib-writ.adb, lib-xref.adb, lib-xref.ads,
+       lib-xref-spark_specific.adb, live.adb, par.adb, par_sco.adb,
+       pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb,
+       scn.adb, sem.adb, sem.ads, sem_aggr.adb, sem_attr.adb,
+       sem_aux.adb, sem_case.adb, sem_cat.adb, sem_ch11.adb,
+       sem_ch13.adb, sem_ch2.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_intr.adb, sem_mech.adb, sem_res.adb, sem_scil.adb,
+       sem_smem.adb, sem_type.adb, set_targ.ads, sinput.adb,
+       sinput-l.adb, sprint.adb, style.adb, styleg.adb, tbuild.adb,
+       tbuild.ads, uname.adb: Add with/use for new packages.
+       * libgnat/a-stoubu.adb, libgnat/a-stouut.adb: Simplify to ease
+       bootstrap.
+       * libgnat/a-stobfi.adb, libgnat/a-stoufi.adb (Create_File,
+       Create_New_File): Create file in binary format, to avoid
+       introducing unwanted text conversions on Windows. Simplify to
+       ease bootstrap.
+       * libgnat/a-stteou__bootstrap.ads: New.
+       * ceinfo.adb, csinfo.adb, nmake.adt, treeprs.adt, xeinfo.adb,
+       xnmake.adb, xsinfo.adb, xtreeprs.adb: Delete.
+       * Make-generated.in: Build and run the gen_il program to
+       generate files. The files are generated in the ada/gen_il
+       subdirectory, and then moved up to ada.  We rely on gnatmake (as
+       opposed to make) to build the gen_il program efficiently (i.e.
+       don't do anything if the sources didn't change).
+       * gcc-interface/Makefile.in (ADAFLAGS): Add -gnatU.
+       (GNATMAKE_OBJS): Add new object files.
+       (GENERATED_FILES_FOR_TOOLS): New variable.
+       (../stamp-tools): Create a link for all
+       GENERATED_FILES_FOR_TOOLS.
+       * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add new object
+       files.  Remove ada/treeprs.o.
+       (GNATBIND_OBJS): Add new object files.
+       (ada.mostlyclean): Remove ada/sdefault.adb and add
+       ada/stamp-gen_il.
+       (ada.maintainer-clean): Remove ada/treeprs.ads.
+       (update-sources): Remove obsolete target.
+       (ada_generated_files): Rename to...
+       (ADA_GENERATED_FILES): ... this.  Add new source files.  Add
+       comment.
+       * gcc-interface/trans.c: Remove obsolete Nodes_Ptr and
+       Flags_ptr.  Add Node_Offsets_Ptr and Slots_Ptr, which point to
+       the corresponding tables in Atree.
+       * gcc-interface/gigi.h (gigi): New parameters for initializing
+       Node_Offsets_Ptr and Slots_Ptr.
+       * gcc-interface/decl.c: Numeric_Kind,
+       Discrete_Or_Fixed_Point_Kind, and Record_Kind were
+       nonhierarchical, and were therefore removed for simplicity.
+       Replace uses with calls to Is_In_... functions.
+
+2021-05-07  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch4.adb (Unconstrained_UU_In_Component_Declaration): A
+       component declaration whose subtype indication is an entity name
+       without an explicit constraint is an Unchecked_Union type only
+       if the entity has an unconstrained nominal subtype (record type
+       or private type) whose parent type is an Unchecked_Union.
+
+2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_res.adb (Flag_Object): Ignore prefixes of attribute
+       Address.
+
+2021-05-07  Yannick Moy  <moy@adacore.com>
+
+       * opt.ads: Update comment for Warn_On_Suspicious_Modulus_Value.
+       * sem_res.adb (Resolve_Unary_Op): Generate warning.
+       * usage.adb: Refine doc for -gnatw.m/M switch.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Update doc on -gnatw.m switch.
+       * gnat_ugn.texi: Regenerate.
 
-       * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
-       the --no-separate-return switch of gnatpp.
+2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-09  Arnaud Charlet  <charlet@adacore.com>
+       * sem_res.adb (Flag_Object): Replace chained IF with a CASE;
+       remove repeated calls to Entity; do not traverse into
+       N_Identifier and N_Expanded_Name, because only need to examine
+       their Entity field anyway.
 
-       * sem_warn.adb (Warn_On_Constant_Valid_Condition): Add proper
-       warning tag.
+2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-09  Arnaud Charlet  <charlet@adacore.com>
+       * sem_ch4.adb (Analyze_Call): Remove call to End_Interp_List.
+       (Process_Overloaded_Indexed_Component): Remove call to
+       End_Interp_List.
+       * sem_util.adb (Insert_Explicit_Dereference): Remove call to
+       End_Interp_List.
+       * sem_type.ads (End_Interp_List): Remove.
+       * sem_type.adb (Add_Entry): The guard against duplicate entries
+       is now checked before other conditions, so that EXIT statements
+       do not bypass this guard.
+       (End_Interp_List): Remove.
 
-       * sem_type.adb (Covers): Fix implementation of AI05-0149.
-       * sem_res.adb: Fix typo.
+2021-05-07  Ed Schonberg  <schonberg@adacore.com>
 
-2020-06-09  Ed Schonberg  <schonberg@adacore.com>
-
-       * exp_ch9.adb (Build_Master_Renaming): Make name in renaming
-       declaration unique by adding a numeric suffix, to prevent
-       accidental name conflict when several instantiations of a
-       package containing an access_to_incomplete type that designate
-       tasks appear in the same scope.
+       * exp_util.adb (Remove_Init_Call): If a simple initialization
+       call is present, and the next statement is an initialization
+       block (that contains a call to a Deep_ Initialize routine),
+       remove the block as well, and insert the first initialization
+       call in it, in case it is needed for later relocation.
 
-2020-06-09  Piotr Trojanek  <trojanek@adacore.com>
+2021-05-07  Gary Dismukes  <dismukes@adacore.com>
 
-       * libgnarl/a-synbar.ads, libgnarl/a-synbar.adb,
-       libgnarl/a-synbar__posix.ads, libgnarl/a-synbar__posix.adb
-       (Ada.Synchronous_Barriers): Annotate with SPARK_Mode => Off.
-
-2020-06-09  Arnaud Charlet  <charlet@adacore.com>
-
-       * sem_eval.adb (Eval_Relational_Op, Eval_String_Literal,
-       Eval_Type_Conversion): Relax rules on relational operators and
-       type conversions of static string types.
-
-2020-06-09  Arnaud Charlet  <charlet@adacore.com>
-
-       * sem_util.ads, sem_util.adb (Is_Partially_Initialized_Type):
-       Take Default_Value and Default_Component_Value into account.
-       * sem_ch3.adb (Analyze_Object_Declaration): Update comment.
-
-2020-06-09  Bob Duff  <duff@adacore.com>
-
-       * bindo-graphs.adb (Add_Edge_Kind_Check): Disable failing part
-       of the assertion.
+       * errout.ads (Size_Too_Small_Message): Remove low-value ???
+       comment.
+       * exp_util.ads: Remove ??? in part of overall package comments
+       and restructure comment to clarify.
+       (Duplicate_Subexpr): Remove ??? comment that seems unnecessary.
+       * sem_ch3.ads (Analyze_Declarations): Remove two parenthesized
+       ??? comments and add more description of the procedure's
+       actions.
+       (Get_Discriminant_Value): Remove ??? comment requesting more
+       documentation, expanding description of the function's actions.
+       * sem_disp.ads (Check_Operation_From_Incomplete_Type): Add more
+       semantic description of the procedure and remove ??? comment
+       requesting such.
+       (Propagate_Tag): Refine comment to indicate meaning of formal
+       parameters and generally improve the spec comment (and remove
+       ??? comment asking about the parameters).
+
+2021-05-07  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_eval.adb (Fold_Shift): Fix computation of Shift_Left
+       resulting in negative signed values.
+
+2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_util.ads (Defining_Entity): Remove Empty_On_Errors parameter.
+       (Defining_Entity_Or_Empty): New function.
+       * sem_util.adb (Defining_Entity): Move bulk of implementation to...
+       (Defining_Entity_Or_Empty): ...here.  Do not raise Program_Error.
+       (Innermost_Master_Scope_Depth): Call Defining_Entity_Or_Empty.
+
+2021-05-07  Justin Squirek  <squirek@adacore.com>
+
+       * aspects.ads: Add entries to register
+       Aspect_No_Controlled_Parts.
+       * freeze.adb (Check_No_Controlled_Parts_Violations): Added to
+       check requirements of aspect No_Controlled_Parts after a type
+       has been frozen.
+       (Freeze_Entity): Add call to
+       Check_No_Controlled_Parts_Violations.
+       (Find_Aspect_No_Controlled_Parts): Created to obtain the aspect
+       specification for No_Controlled_Parts on a given type when
+       present.
+       (Find_Aspect_No_Controlled_Parts_Value): Protect against invalid
+       value.
+       (Has_Aspect_No_Controlled_Parts): Created as a prediate function
+       to check if No_Controlled_Parts has been specified on a type for
+       Get_Anacestor_Types_With_Specification.
+       (Get_Aspect_No_Controlled_Parts_Value): Created to obtain the
+       value of the aspect No_Controlled_Parts when specified on a
+       given type.
+       (Get_Generic_Formal_Types_In_Hierarchy): Created to collect
+       formal types in a given type's hierarchy.
+       (Get_Types_With_Aspect_In_Hierarchy): Created to collect types
+       in a given type's hierarchy with No_Controlled_Parts specified.
+       * sem_ch13.adb (Analyze_One_Aspect): Add processing for
+       No_Controlled_Parts, and fix error in check for allowed pragmas
+       for formal types.
+       (Check_Expr_Is_OK_Static_Expression): Created to enforce
+       checking of static expressions in the same vein as
+       Analyze_Pragma.Check_Expr_OK_Static_Expression.
+       * sem_util.adb (Collect_Types_In_Hierarchy): Created to collect
+       types in a given type's hierarchy that match a given predicate
+       function.
+       * sem_util.ads: Fix typo.
+       * snames.ads-tmpl: Add entry for No_Controlled_Parts.
 
-2020-06-08  Steve Baird  <baird@adacore.com>
+2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * sem_prag.adb (Analyze_Pragma.Set_Ravenscar_Profile): Add
-       appropriate call to Set_Restriction_No_Dependence if Ada_Version
-       >= Ada2012 and Profile is either Ravenscar or a GNAT-defined
-       Ravenscar variant (i.e., not Jorvik).
+       * libgnat/s-fatgen.adb (Scaling): Raise Constraint_Error in the
+       overflow case when T'Machine_Overflows is True.
 
-2020-06-08  Arnaud Charlet  <charlet@adacore.com>
+2021-05-07  Bob Duff  <duff@adacore.com>
 
-       * sem_ch5.adb: Fix typo.
-       * sem_ch8.adb (Analyze_Renamed_Primitive_Operation): Check that
-       the prefix of a prefixed view must be renamable as an object.
+       * libgnat/a-conhel.adb (TC_Check): Move the Assert into the
+       'if'.
 
-2020-06-08  Arnaud Charlet  <charlet@adacore.com>
+2021-05-07  Frederic Konrad  <konrad@adacore.com>
 
-       * sem_cat.ads: Fix typo.
-       * sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type): Add
-       handling of N_Attribute_Definition_Clause.
-       * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Call
-       Validate_Remote_Access_To_Class_Wide_Type for Storage_Size and
-       Storage_Pool.
-       * sem_attr.adb, exp_ch4.adb: Update comments.
+       * sigtramp-vxworks-target.inc: Use a local label for the TOC.
 
-2020-06-08  Justin Squirek  <squirek@adacore.com>
+2021-05-07  Claire Dross  <dross@adacore.com>
 
-       * sem_ch4.adb (Analyze_One_Call): Add extra condition to the
-       predicate for deciding when a given controlled call is visible.
+       * exp_ch4.adb (Has_Inferable_Discriminants): Moved to Sem_Util.
+       * sem_util.ads, sem_util.adb (Has_Inferable_Discriminants):
+       Moved from Exp_Ch4.
 
-2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
+2021-05-07  Ed Schonberg  <schonberg@adacore.com>
 
-       * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Port
-       changes in frontend expander.
+       * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity):
+       Add guard to verify that the enclosing pragma is a precondition.
 
-2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
-
-       * sem_ch13.adb (All_Membership_Choices_Static): Fix style.
-
-2020-06-08  Steve Baird  <baird@adacore.com>
-
-       * libgnat/s-rident.ads: Add Jorvik to the Profile_Name
-       enumeration type.  Add an element for Jorvik to the array
-       aggregate that is the initial value of the constant
-       Profile_Info.
-       * targparm.adb (Get_Target_Parameters): Handle "pragma Profile
-       (Jorvik);" similarly to "pragma Profile (Ravenscar);".
-       * snames.ads-tmpl: Declare Name_Jorvik Name_Id. Unlike
-       Ravenscar, Jorvik is not a pragma name and has no corresponding
-       element in the Pragma_Id enumeration type; this means that its
-       declaration must not occur between those of First_Pragma_Name
-       and Last_Pragma_Name.
-       * sem_prag.adb (Analyze_Pragma): Add call to
-       Set_Ravenscar_Profile for Jorvik, similar to the existing calls
-       for Ravenscar and the GNAT Ravenscar variants.
-
-2020-06-08  Arnaud Charlet  <charlet@adacore.com>
-
-       * sem_ch8.adb (Analyze_Object_Renaming): Update Get_Object_Name
-       to go through N_Qualified_Expression and N_Type_Conversion.  Fix
-       another case of wrong usage of E_Anonymous_Access_Type instead
-       of Anonymous_Access_Kind.
-       * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Work
-       on the original node.
-       (Is_Aliased_View): Take into account N_Qualified_Expression.
-
-2020-06-08  Arnaud Charlet  <charlet@adacore.com>
-
-       * sem_eval.adb (Eval_Type_Conversion): Fix handling of
-       enumeration to integer conversions.
-       * exp_attr.adb (Expand_N_Attribute_Reference
-       [Attribute_Enum_Rep]): Remove special casing for first-level
-       renaming, best left to the general folding mechanism via
-       Eval_Type_Conversion.
-
-2020-06-08  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * atree.adb (New_Copy): Do not clear Has_Dynamic_Range_Check.
-       * checks.ads (Append_Range_Checks): Remove Flag_Node parameter.
-       (Insert_Range_Checks): Likewise and remove default value of
-       Static_Loc parameter.
-       * checks.adb (Append_Range_Checks): Remove Flag_Node parameter.
-       Do not test and set Has_Dynamic_Range_Check.
-       (Insert_Range_Checks): Likewise and remove default value of
-       Static_Loc parameter.
-       * csinfo.adb (CSinfo): Remove 'L' from [NEUB]_Fields pattern and
-       do not handle Has_Dynamic_Range_Check.
-       * exp_ch5.adb (Expand_N_Assignment_Statement): Remove argument
-       in call to Insert_Range_Checks.
-       * sem_ch3.adb (Analyze_Subtype_Declaration): Do not fiddle
-       with Has_Dynamic_Range_Check.
-       (Process_Range_Expr_In_Decl): Remove argument in calls to
-       Insert_Range_Checks and Append_Range_Checks.
-       * sinfo.ads (Has_Dynamic_Range_Check): Delete.
-       (Set_Has_Dynamic_Range_Check): Likewise.
-       * sinfo.adb (Has_Dynamic_Range_Check): Delete.
-       (Set_Has_Dynamic_Range_Check): Likewise.
-       * treepr.adb (Print_Node): Do not print Has_Dynamic_Range_Check.
-
-2020-06-08  Steve Baird  <baird@adacore.com>
-
-       * sem_ch13.ads: Export new function
-       All_Membership_Choices_Static.
-       * sem_ch13.adb: Implement new function
-       All_Membership_Choices_Static.  This involves moving the
-       functions Is_Static_Choice and All_Membership_Choices_Static,
-       which were previously declared within the function
-       Is_Predicate_Static, out to library level so that they can be
-       called by the new function. The already-exisiting code in
-       Is_Predicate_Static which became the body of
-       All_Membership_Choices_Static is replaced with a call to the new
-       function in order to avoid duplication.
-       * exp_ch9.adb (Is_Pure_Barrier): Several changes needed to
-       implement rules of AI12-0290 and RM D.7's definition of
-       "pure-barrier-eligible". These changes include adding a call to
-       the new function Sem_13.All_Membership_Choices_Static, as per
-       the "see 4.9" in RM D.7(1.6/5).
-
-2020-06-08  Richard Kenner  <kenner@adacore.com>
-
-       * exp_unst.adb (Visit_Node): When visiting array attribute
-       nodes, in addition to checking the type of Get_Referenced_Object
-       of the prefix, also check the actual type of the prefix.
-
-2020-06-08  Gary Dismukes  <dismukes@adacore.com>
-
-       * checks.adb (Apply_Predicate_Check): Refine test for being in a
-       subprogram body to account for no Corresponding_Body case,
-       avoiding blowups arising due to other changes here.
-       * exp_ch4.adb (Expand_N_Qualified_Expression): Apply predicate
-       checks, if any, after constraint checks are applied.
-       * sem_eval.ads (Check_Expression_Against_Static_Predicate): Add
-       Check_Failure_Is_Error formal for conditionalizing warning vs.
-       error messages.
-       * sem_eval.adb (Check_Expression_Against_Static_Predicate):
-       Issue an error message rather than a warning when the new
-       Check_Failure_Is_Error formal is True. In the nonstatic or
-       Dynamic_Predicate case where the predicate is known to fail,
-       emit the check to ensure that folded cases get checks applied.
-       * sem_res.adb (Resolve_Qualified_Expression): Call
-       Check_Expression_Against_Static_Predicate, passing True for
-       Check_Failure_Is_Error, to ensure we reject static predicate
-       violations. Remove code that was conditionally calling
-       Apply_Predicate_Check, which is no longer needed, and that check
-       procedure shouldn't be called from a resolution routine in any
-       case. Also remove associated comment about preventing infinite
-       recursion and consistency with Resolve_Type_Conversion, since
-       that handling was already similarly removed from
-       Resolve_Type_Convesion at some point.
-       (Resolve_Type_Conversion): Add passing of True for
-       Check_Failure_Is_Error parameter on call to
-       Check_Expression_Against_Static_Predicate, to ensure that static
-       conversion cases that violate a predicate are rejected as
-       errors.
-
-2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
-
-       * snames.ads-tmpl (Name_SPARK): Restore after being deleted.
-
-2020-06-08  Arnaud Charlet  <charlet@adacore.com>
-
-       * exp_aggr.adb, exp_ch6.adb, par-ch11.adb, par-ch6.adb,
-       par-ch7.adb, par-prag.adb, restrict.adb, restrict.ads,
-       scans.ads, scng.adb, sem_aggr.adb, sem_attr.adb, sem_ch11.adb,
-       sem_ch12.adb, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
-       sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
-       sem_res.adb, sem_util.adb, sem_util.ads, snames.ads-tmpl,
-       gnatbind.adb, libgnat/s-rident.ads,
-       doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
-       Remove processing of SPARK_05 restriction.
-       * gnat_rm.texi: Regenerate.
-       * opt.ads: Remove processing of old checksum which is now
-       handled by gprbuild directly.
+2021-05-06  Javier Miranda  <miranda@adacore.com>
 
-2020-06-08  Arnaud Charlet  <charlet@adacore.com>
+       * exp_disp.adb (Build_Class_Wide_Check): Extending the
+       functionality of this routine to climb to the ancestors
+       searching for the enclosing overridden dispatching primitive
+       that has a class-wide precondition to generate the check.
 
-       * sem_ch12.adb (Instantiate_Object): Relax rules related to null
-       exclusions and generic objects. Handle all anonymous types
-       consistently and not just E_Anonymous_Access_Type.
-       * sem_ch8.adb (Analyze_Object_Renaming): Change wording so that
-       it applies to both renamings and instantiations to avoid
-       confusion.
+2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-08  Arnaud Charlet  <charlet@adacore.com>
+       * sem_ch3.adb (Constraint_Index): Remove redundant problematic
+       analysis.
 
-       * libgnat/a-textio.ads (File_Mode): Fix typo in comment.
+2021-05-06  Arnaud Charlet  <charlet@adacore.com>
 
-2020-06-08  Eric Botcazou  <ebotcazou@adacore.com>
+       * exp_unst.adb (Note_Uplevel_Bound): Exclude
+       E_Enumeration_Literal.
 
-       * sem_res.adb (Resolve_Indexed_Component): Do not give a warning
-       for a nonatomic component of an atomic array which is subject to
-       an address clause in Ada 2020 mode.
-       (Resolve_Selected_Component): Likewise for an atomic record.
+2021-05-06  Arnaud Charlet  <charlet@adacore.com>
 
-2020-06-08  Philippe Gil  <gil@adacore.com>
+       * exp_ch4.adb (Expand_N_If_Expression):
+       Apply_Arithmetic_Overflow_Check will not deal with
+       Then/Else_Actions so skip minimizing overflow checks if any
+       actions are present.
 
-       * doc/gnat_ugn/the_gnat_compilation_model.rst: in "Handling
-       Files with Multiple Units" part documents gnatname use for
-       unmodified files handling and gnatchop use for files
-       refactoring.
-       * gnat_ugn.texi: Regenerate.
+2021-05-06  Boris Yakobowski  <yakobowski@adacore.com>
 
-2020-06-08  Arnaud Charlet  <charlet@adacore.com>
+       * gnat1drv.adb (Adjust_Global_Switches): Simplify logic.
 
-       * doc/gnat_rm/implementation_defined_attributes.rst:
-       Enum_Rep/Enum_Val are standard Ada 202x attributes.
-       * gnat_rm.texi: Regenerate.
+2021-05-06  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/i-c.ads (bool): New type.
+       * libgnat/i-cexten.ads, libgnat/i-cexten__128.ads (bool): Now
+       a subtype of Interfaces.C.bool.
+       * libgnarl/s-interr__vxworks.adb (Interrupt_Manager): Qualify
+       False.
+       * libgnarl/s-interr.adb, libgnarl/s-interr__hwint.adb,
+       libgnarl/s-tasini.adb, libgnarl/s-tasren.adb,
+       libgnarl/s-tassta.adb, libgnarl/s-tpobmu.adb,
+       libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb: Replace
+       Assert (False) by Assert (Standard.False).
+
+2021-05-06  Ghjuvan Lacambre  <lacambre@adacore.com>
 
-2020-06-08  Javier Miranda  <miranda@adacore.com>
+       * make.adb (Compute_Executable): Document parameter.
 
-       * exp_aggr.adb (Safe_Component): Remove code that considers as
-       unsafe components that are aggregates; such removal allows the
-       frontend to proceed and evaluate if they are safe by means of
-       invoking Safe_Aggregate.
+2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
+       * libgnat/s-fatgen.adb (Scaling): Use single handling of
+       underflow.  Add pragma Annotate.
 
-       * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
-       standard expansion to attributes First and Last.
+2021-05-06  Ghjuvan Lacambre  <lacambre@adacore.com>
 
-2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
+       * sem_eval.adb (Is_OK_Static_Subtype): Call Is_Static_Subtype,
+       remove redundant checks.
 
-       * exp_attr.adb, exp_util.ads, exp_util.adb (Get_Index_Subtype):
-       Move from the body of Exp_Attr to Exp_Util and expose from the
-       spec.
-       * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Replace
-       duplicated code with a call to Get_Index_Subtype.
+2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-08  Arnaud Charlet  <charlet@adacore.com>
+       * sem_res.adb (First_Last_Ref): Simplify "if [condition] then
+       return True" in "return [condition]".
+       (Resolve_Range): Remove calls appearing in IF condition from the
+       THEN statements.
 
-       * sem_ch8.adb (Analyze_Object_Renaming): Simplify code by moving
-       many special cases to Is_Object_Reference and removing others by
-       only checking renamings coming from sources.
-       * sem_util.adb (Is_Object_Reference): Update for AI12-0226 and
-       add more regular handling of 'Priority. Remove special cases no
-       longer needed now that we are only checking renamings coming
-       from sources.
+2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-08  Claire Dross  <dross@adacore.com>
+       * sem_case.adb (Missing_Choice): Fix typo in comment.
+       (Lit_Of): Simplify with Make_Character_Literal.
+       (Check_Choices): Remove extra spaces in parameter
+       specifications.
+       * sem_case.ads: Same reformatting.
 
-       * libgnat/a-cofove.adb (Insert_Space): The computation of Index
-       generates a spurious compiler warning about a value not being in
-       range for a statically dead branch.  Silence it using pragma
+2021-05-06  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_aggr.adb (Expand_Array_Aggregate): If the expression in an
+       Others_Clause has not been analyzed because previous analysis of
+       the enclosing aggregate showed the clause to be ineffective i.e.
+       cover a null range, analyze it now to detect a possible type
+       illegality.
+
+2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-fatgen.adb (Scaling): Fix off-by-one bug for underflow.
+
+2021-05-06  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch6.adb (Is_Inline_Pragma): Protect against N not being a
+       list member in both branches.
+
+2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * libgnat/a-cofove.adb (Insert_Space): Remove hardcoded pragma
        Warnings.
 
-2020-06-08  Bob Duff  <duff@adacore.com>
-
-       * bindo-graphs.adb (function Add_Edge): Rename
-       Add_Edge_With_Return to Add_Edge; we can tell it returns because
-       it's a function, and overloading seems appropriate in this case.
-       If Activates_Task=True, and we're not going to add a new edge
-       because an existing Pred-->Succ edge already exists, then set
-       Activates_Task to True on the preexisting edge.  This ensures
-       that the message:
-       info: use pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
-       appears when appropriate, no matter in what order the edges
-       happened to be processed.
-       (procedure Add_Edge): Remove redundant assertions.
-       (Activates_Task): Other kinds of edges can have
-       Activates_Task=True.  For example, if we had a With_Edge and
-       then an Invocation_Edge with Activates_Task=True, then the
-       With_Edge has Activates_Task set to True.
-       (Add_Edge_Kind_Check): New procedure to prevent other bugs of
-       this nature. For example, if we were to sometimes call Add_Edge
-       for a Spec_Before_Body_Edge followed by Add_Edge for a
-       With_Edge, and sometimes in the other order, that would cause a
-       similar bug to what we're fixing here.
-       (Set_Is_Recorded_Edge): Val parameter is not used. Get rid of
-       it.
-       (Set_Activates_Task): New procedure to set the Activates_Task flag.
-       * bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder the
-       enumeration literals to facilitate Add_Edge_Kind_Check.
-       * ali.adb (Known_ALI_Lines): The comment about "still available"
-       was wrong. Fix that by erasing the comment, and encoding the
-       relevant information in real code. Take advantage of Ada's full
-       coverage rules by removing "others =>".  Also DRY.
-
-2020-06-08  Ed Schonberg  <schonberg@adacore.com>
-
-       * par-ch12.adb (P_Formal_Derived_Type_Definition): Handle
-       properly formal derived types that include aspect
-       specifications, so that the "with" keyword appears twice in the
-       formal type declaration.
-       * sem_ch13.adb (Has_Generic_Parent): Return true if the type
-       itself is a generic formal.
-
-2020-06-08  Dmitriy Anisimkov  <anisimko@adacore.com>
-
-       * socket.c (__gnat_minus_500ms): Remove
-       IsWindowsVersionOrGreater from condition.
-
-2020-06-08  Claire Dross  <dross@adacore.com>
-
-       * libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads,
-       libgnat/a-cfhase.ads, libgnat/a-cforma.ads, libgnat/a-cforse.ads
-       (Delete): Add Depends contract.
-
-2020-06-08  Arnaud Charlet  <charlet@adacore.com>
-
-       * snames.ads-tmpl (Name_Program_Error_Check,
-       Name_Tasking_Check): New constants.
-       * types.ads (Program_Error_Check, Tasking_Check): New constants.
-       (All_Checks): Update accordingly.
-
-2020-06-05  Arnaud Charlet  <charlet@adacore.com>
-
-       * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Use ??.
-
-2020-06-05  Arnaud Charlet  <charlet@adacore.com>
-
-       * cstand.adb (Create_Standard): Update comments.
-
-2020-06-05  Arnaud Charlet  <charlet@adacore.com>
-
-       * scng.adb (Scan): Fix typo to take into account all future
-       versions of Ada.
-       * sem_attr.ads (Attribute_Impl_Def): Add Attribute_Reduce for
-       now.
-       * sem_attr.adb (Analyze_Attribute): Only allow 'Reduce under
-       -gnatX.
-       * snames.ads-tmpl (Name_Reduce): Update comment.
-
-2020-06-05  Thomas Quinot  <quinot@adacore.com>
-
-       * exp_disp.adb (Expand_Interface_Thunk): Add comment about
-       gnatcov reliance on specific name used for thunks.
-
-2020-06-05  Ed Schonberg  <schonberg@adacore.com>
-
-       * sem_ch3.adb (Analyze_Subtype_Declaration): For scalar types,
-       and for subtype declarations without a constraint, subtype
-       inherits Atomic flag from base type.
-
-2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
-
-       * doc/gnat_rm/implementation_defined_attributes.rst (Enum_Rep):
-       Remove extra colon.
-       * gnat_rm.texi: Regenerate.
+2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+       * sem_ch4.adb (Analyze_Selected_Component): Remove explicit call
+       to Set_Raises_Constraint_Error on statically missing component.
+       * sem_eval.adb (Eval_Arithmetic_Op): Likewise for static
+       divisions by integer and real zeros.
+       * sem_util.adb (Apply_Compile_Time_Constraint_Error): Call
+       Set_Raises_Constraint_Error before exiting early in GNATprove
+       mode.
 
-       * atree.adb (New_Copy): Clear Has_Dynamic_Range_Check on
-       subexpression nodes.
-       * checks.adb (Append_Range_Checks): Assert that the node
-       doesn't have the Has_Dynamic_Range_Check flag set.
-       (Insert_Range_Checks): Likewise.
-       * exp_ch3.adb (Expand_N_Subtype_Indication): Do not apply
-       range checks for a full type or object declaration.
-       * sem_ch3.ads: Move with and use clauses for Nlists to...
-       (Process_Range_Expr_In_Decl): Change default to No_List for
-       the Check_List parameter.
-       * sem_ch3.adb: ...here.
-       (Process_Range_Expr_In_Decl): Likewise.  When the insertion
-       node is a declaration, only insert on the list if is present
-       when the declaration involves discriminants, and only insert
-       on the node when there is no list otherwise.
+2021-05-06  Justin Squirek  <squirek@adacore.com>
 
-2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
+       * checks.adb (Make_Discriminant_Constraint_Check): Add check for
+       null when the type being converted is an access type.
 
-       * sem_aggr.adb (Resolve_Record_Aggregate): Create the
-       N_Aggregate node with its Expressions field set to No_List and
-       not to an empty list.
+2021-05-06  Arnaud Charlet  <charlet@adacore.com>
 
-2020-06-05  Dmitriy Anisimkov  <anisimko@adacore.com>
+       * exp_pakd.adb (Expand_Packed_Eq): Fix handling of PATs.
 
-       * libgnat/s-os_lib.adb (Is_Dirsep): Moved from Build_Path to
-       package level to reuse.
-       (Normalize_Pathname.Final_Value): Reduce 2 'if' statements to
-       one.
-       (Normalize_Pathname.Fill_Directory): New procedure instead of
-       function Get_Directory. Remove slash to backslash conversion and
-       drive letter uppercasing on Windows.
+2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-05  Arnaud Charlet  <charlet@adacore.com>
+       * osint.adb (Read_Library_Info_From_Full): Cleanup unused
+       initial value.
 
-       * sem.adb (Assert_Done): Relax check for main unit, as it was
-       overzealous in the case of the main unit itself.
+2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
+       * doc/gnat_rm/implementation_defined_characteristics.rst (3.5.7):
+       Mention the IEEE standard explicitly.  Use current format names.
+       Document assumed rounding mode and new features of I/O support.
+       * gnat_rm.texi: Regenerate.
 
-       * exp_ch3.adb, sem_ch8.adb, sem_util.adb: Use Is_Incomplete_Type
-       to make the code easier to read.
+2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
+       * init.c (__gnat_init_float): Use full version on Linux too.
 
-       * einfo.adb: Minor reformatting.
-       * sem_util.adb (Has_Full_Default_Initialization,
-       Is_Partially_Initialized_Type, Caller_Known_Size_Record,
-       Large_Max_Size_Mutable): Iterate with
-       First_Component/Next_Component; rename Ent to Comp.
+2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+       * libgnat/s-fatgen.adb (Valid): Do a bit comparison with 0.0
+       when denormalized numbers are not supported.
 
-       * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use
-       Expr_Rep_Value instead of Expr_Value to obtain the equivalent
-       integer value.
-       * sem_eval.ads (Expr_Value): Document more supported cases.
-       * sem_eval.adb (Expr_Rep_Value): Copy missing cases from
-       Exp_Value.
+2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-05  Bob Duff  <duff@adacore.com>
+       * sem_attr.adb (Check_Enum_Image): Reword comment; add
+       Check_Enumeration_Maps parameter.  Now this routine combines
+       both referencing enumeration literals and checking restriction
+       No_Enumeration_Maps, if required.
+       (Analyze_Attribute): Remove duplicated code and instead call
+       Check_Enum_Image.
 
-       * rtsfind.adb, rtsfind.ads: Move subtypes of RTU_Id into package
-       body, because they are not needed by clients. Change "Child_" to
-       "Descendant", because grandchildren and great grandchildren are
-       involved.  Replace all the repetitive comments with a single
-       concise one.  Change the parent subtypes to be more consistent;
-       use the most specific parent.
+2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
+       * sem_attr.adb (Analyze_Image_Attribute): Remove redundant
+       condition; add a missing header box.
 
-       * rtsfind.ads, rtsfind.adb (Is_Text_IO_Special_Package): Moved
-       from the GNATprove backend to the frontend.
+2021-05-06  Gary Dismukes  <dismukes@adacore.com>
 
-2020-06-05  Yannick Moy  <moy@adacore.com>
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
+       mention of underscore and fix grammar error in doc for -gnatd.
+       * gnat_ugn.texi: Regenerate.
 
-       * sem_util.ads: Add comment about function only used in
-       CodePeer.
+2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-2020-06-05  Ed Schonberg  <schonberg@adacore.com>
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-exponr, s-exnflt
+       and s-exnlfl.
+       * exp_ch4.adb (Expand_N_Op_Expon): Use RE_Exn_Float for Short_Float.
+       * rtsfind.ads (RTU_Id): Add System_Exn_Flt and System_Exn_LFlt.
+       (RE_Id): Adjust entries for RE_Exn_Float and RE_Exn_Long_Float.
+       (RE_Unit_Table): Likewise.
+       * libgnat/s-exnflt.ads: New file.
+       * libgnat/s-exnlfl.ads: Likewise.
+       * libgnat/s-exnllf.ads: Change to mere instantiation.
+       * libgnat/s-exnllf.adb: Move implementation to...
+       * libgnat/s-exponr.ads: New generic unit.
+       * libgnat/s-exponr.adb: ...here and also make it generic.
+       (Expon): Do the computation in double precision internally.
 
-       * sem_ch9.adb, (Analyze_Task_Body): After analying the task
-       body, indicate that all local variables have no delayed aspects.
-       This prevents improper later calls to
-       Check_Aspect_At_End_Of_Declarations, that would happen when the
-       constructed task_procedure body (generated during expansion) is
-       analyzed. The legality of aspect specifications that may appear
-       on local declarations has already been established, and it is in
-       general not possible to recheck them properly during expansion,
-       when visibility may not be fully established.
+2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
+       * lib-writ.adb, osint.adb, osint.ads: Cleanup.
 
-       * libgnat/a-cofuve.ads (First): Add Global contract.
+2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-05  Arnaud Charlet  <charlet@adacore.com>
+       * exp_ch3.adb (Expand_Freeze_Array_Type): Remove excessive
+       condition.
+       (Expand_N_Object_Declaration): Likewise.
+       (Build_Equivalent_Aggregate): Likewise.
+       (Initialization_Warning): Likewise; change another excessive
+       condition into assertion.
+       * freeze.adb (Freeze_Entity): Remove excessive condition.
 
-       * sem_prag.adb (Set_Convention_From_Pragma): Set the convention
-       of anonymous access array components.
+2021-05-06  Ed Schonberg  <schonberg@adacore.com>
 
-2020-06-05  Arnaud Charlet  <charlet@adacore.com>
+       * sem_res.adb (Resolve_If_Expression): If the context of the
+       expression is an indexed_component, resolve the expression and
+       its dependent_expressions with the base type of the index, to
+       ensure that an index check is generated when resolving the
+       enclosing indexxed_component, and avoid an improper use of
+       discriminants out of scope, when the index type is
+       discriminant-dependent.
 
-       * libgnat/a-calfor.ads, libgnat/a-catizo.ads,
-       libgnat/a-catizo.adb (Local_Time_Offset, Local_Image): New.
-       (UTC_Time_Offset): Now a renaming of Local_Time_Offset.
+2021-05-06  Arnaud Charlet  <charlet@adacore.com>
 
-2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+       * einfo.ads, exp_prag.adb, exp_util.adb: Fix typos.
 
-       * sem_ch3.adb (Available_Full_View): New function returning
-       either the full or the underlying full view.
-       (Build_Full_Derivation): Add guard for the full view.
-       (Copy_And_Build): Retrieve the underlying full view, if any,
-       also if deriving a completion.
-       (Build_Derived_Private_Type): Use Available_Full_View throughout
-       to decide whether a full derivation must be done.
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-05  Bob Duff  <duff@adacore.com>
+       * exp_attr.adb (Expand_N_Attribute_Reference): Fix expansion of
+       attributes Input and Output for unchecked unions.
+       * sem_case.ads: Fix typo "disriminant" and refill comment.
 
-       * exp_attr.adb, exp_ch11.adb, exp_imgv.adb, exp_tss.ads,
-       par-ch4.adb, sem_attr.adb, sem_util.ads: Misc cleanup.
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-05  Arnaud Charlet  <charlet@adacore.com>
+       * exp_attr.adb, exp_ch9.adb, sem_ch3.adb: Reuse
+       Has_Defaulted_Discriminants.
+       * sem_ch4.adb (Analyze_Allocator): Reuse
+       Has_Defaulted_Discriminants (after reordering conjuncts); remove
+       redundant IF statement, whose condition is implied by
+       Has_Defaulted_Discriminants.
+       * sem_util.adb (Has_Defaulted_Discriminants): Has_Discriminants
+       implies that the First_Discriminant is present.
+       (Is_Fully_Initialized_Type): Reuse Has_Defaulted_Discriminants.
 
-       * libgnat/a-nudira.ads, libgnat/a-nudira.adb (Random): New
-       function.
+2021-05-05  Justin Squirek  <squirek@adacore.com>
 
-2020-06-05  Arnaud Charlet  <charlet@adacore.com>
+       * exp_ch6.adb (Expand_Call_Helper): Add condition to check for
+       expanded actuals and remove dead code.
 
-       * sem_attr.ads (Attribute_Impl_Def): Remove Enum_Rep/Val.
-       * sem_attr.adb (Attribute_20): New, move Enum_Rep/Val here.
-       (Analyze_Attribute): Take Attribute_20 into account.
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-05  Arnaud Charlet  <charlet@adacore.com>
+       * exp_ch4.adb (Has_Unconstrained_UU_Component): Rewrite to
+       follow the Ada RM grammar.
 
-       * restrict.ads (Unit_Array): Add a-direct.
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-05  Arnaud Charlet  <charlet@adacore.com>
+       * exp_ch4.adb (User_Defined_Primitive_Equality_Op): Refine type
+       of a local variable.
+       * exp_dbug.adb (Scope_Contains): Refine all types from Node_Id
+       to Entity_Id; rename parameters to match those of the
+       Scope_Within routine (which is similar but not the same); also,
+       simplify an OR ELSE into a membership test.
 
-       * libgnat/s-stopoo.ads: Mark package Pure and leave room for
-       Nonblocking once this aspect is supported.
-
-2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_attr.adb (Expand_N_Attribute_Reference) <Valid_Scalars>:
-       Set the No_Truncation flag on the unchecked conversion built for
-       scalar types.
-
-2020-06-05  Bob Duff  <duff@adacore.com>
-
-       * einfo.adb, einfo.ads, exp_util.adb: Remove Invariants_Ignored
-       flag.
-       * sem_prag.adb (Invariant): Instead of setting a flag to be
-       checked elsewhere, remove the pragma as soon as it is analyzed
-       and checked for legality.
-
-2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * checks.ads (Apply_Length_Check): Rename Ck_Node parameter to
-       Expr.
-       (Apply_Range_Check): Likewise.
-       (Get_Range_Checks): Likewise.
-       * checks.adb (Apply_Float_Conversion_Check): Likewise.
-       (Apply_Selected_Length_Checks): Likewise.
-       (Apply_Selected_Range_Checks): Likewise.
-       (Guard_Access): Likewise.
-       (Selected_Length_Checks): Likewise.  Also avoid shadowing in
-       child procedures.
-       (Selected_Range_Checks): Likewise.
-
-2020-06-05  Arnaud Charlet  <charlet@adacore.com>
-
-       * par-ch3.adb, par-ch4.adb, scng.adb, sem_aggr.adb,
-       sem_ch10.adb, sem_ch12.adb, sem_prag.adb: Update wording: change
-       Ada_2020 to Ada 2020 in comments and mention -gnat2020 instead
-       of -gnatX switch.
-
-2020-06-04  Arnaud Charlet  <charlet@adacore.com>
-
-       * libgnat/i-c.ads (long_long, unsigned_long_long): New
-       definitions.
-
-2020-06-04  Arnaud Charlet  <charlet@adacore.com>
-
-       * Makefile.rtl: add a-tasini object
-       * impunit.adb (Non_Imp_File_Names_95): Add s-tasini.
-       * libgnarl/a-tasini.ads, libgnarl/a-tasini.adb: New files.
-       * libgnarl/s-taskin.ads (Global_Initialization_Handler): New.
-       * libgnarl/s-tassta.adb (Task_Wrapper): Call
-       Global_Initialization_Handler if non null.
-
-2020-06-04  Ed Schonberg  <schonberg@adacore.com>
-
-       * sem_ch12.adb (Build_Suprogram_Body_Wrapper,
-       Build_Subprogram_Decl_Wrapper): New suprograms, to create the
-       wrappers needed to implement contracts on formsl subprograms at
-       the point of instantiation.
-       (Build_Subprogram_Wrappers): New subprogram within
-       Analyze_Associations, calls the above when the formal subprogram
-       has contracts, and expansion is enabled.
-       (Instantiate_Formal_Subprogram): If the actual is not an entity,
-       such as a function attribute, or a synchronized operation,
-       create a function with an internal name and call it within the
-       wrapper.
-       (Analyze_Generic_Formal_Part): Analyze contracts at the end of
-       the list of formal declarations.
-       * sem_prag.adb (Analyze_Pre_Post_Condtion): In Ada_2020 the
-       aspect and corresponding pragma can appear on a formal
-       subprogram declaration.
-       (Find_Related_Declaration_Or_Body): Ditto.
-
-2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_ch7.adb (Make_Final_Call): Set the type of the object, if
-       it is unanalyzed, before calling Convert_View on it.
-
-2020-06-04  Arnaud Charlet  <charlet@adacore.com>
-
-       * adabkend.adb, back_end.ads, opt.ads, sem_ch6.adb: Get rid of
-       Disable_FE_Inline_Always.
-
-2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_ch7.adb (Make_Final_Call): Add missing guard.
-       * sem_ch3.adb (Copy_And_Build): Adjust recursive call for
-       private types.
-       (Build_Derived_Private_Type): Deal with underlying full views.
-
-2020-06-04  Bob Duff  <duff@adacore.com>
-
-       * 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-stteou.ads, libgnat/s-putaim.adb,
-       libgnat/s-putaim.ads, libgnat/s-putima.adb, libgnat/s-putima.ads
-       (Ada.Strings.Text_Output and children, System.Put_Images): New
-       runtime support for Put_Image.
-       * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add
-       exp_put_image.o.
-       * exp_put_image.adb, exp_put_image.ads: New compiler package
-       that generates calls to runtime routines that implement
-       Put_Image.
-       * Makefile.rtl: Add object files for Ada.Strings.Text_Output and
-       children and System.Put_Images.
-       * aspects.adb: Simplify initialization of Canonical_Aspect.
-       * aspects.ads: Improve documentation. Add Aspect_Put_Image.
-       * exp_attr.adb: Add support for Put_Image, by calling routines
-       in Exp_Put_Image.
-       * sem_util.adb (Is_Predefined_Dispatching_Operation): Return
-       True for new TSS_Put_Image operation.
-       * exp_ch3.adb: For tagged types, build a dispatching
-       TSS_Put_Image operation by calling routines in Exp_Put_Image.
-       * exp_disp.adb, exp_disp.ads: Make TSS_Put_Image be number 10,
-       adjusting other operations' numbers after 10. We choose 10
-       because that's the last number shared by all runtimes.
-       * exp_strm.adb: Use named notation as appropriate.
-       * exp_cg.adb, exp_tss.ads: Add TSS_Put_Image.
-       * libgnat/a-tags.ads: Modify Max_Predef_Prims for the new
-       TSS_Put_Image.
-       * impunit.adb: Add new runtime packages.
-       * rtsfind.adb, rtsfind.ads: Add support for
-       Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
-       System.Put_Images.
-       * sem_attr.adb: Error checking for Put_Image calls.
-       * sem_ch12.adb (Valid_Default_Attribute): Support for passing
-       Put_Image as a generic formal parameter.
-       * sem_ch13.adb: Analysis of Put_Image aspect. Turn it into a
-       Put_Image attribute definition clause.
-       * sem_ch8.adb (Analyze_Subprogram_Renaming): Support for
-       renaming of the Put_Image attribute.
-       * snames.adb-tmpl: Fix comments.
-       * snames.ads-tmpl (Name_Put_Image): New Name_Id.
-       (Attribute_Put_Image): New Attribute_Id.
-       * tbuild.adb, tbuild.ads (Make_Increment): New utility.
-
-2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_attr.adb (xpand_N_Attribute_Reference) <Input>: Call
-       Find_Inherited_TSS to look up the Stream_Read TSS.
-       <Output>: Likewise for the Stream_Write TSS.
-       * exp_ch7.adb (Make_Final_Call): Call Underlying_Type on
-       private types to account for underlying full views.
-       * exp_strm.ads  (Build_Record_Or_Elementary_Input_Function):
-       Remove Use_Underlying parameter.
-       * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
-       Likewise and adjust accordingly.
-       * exp_tss.adb (Find_Inherited_TSS): Deal with full views.
-       Call Find_Inherited_TSS recursively on the parent type if
-       the base type is a derived type.
-       * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Take
-       into account underlying full views for derived types.
-       * sem_ch3.adb (Copy_And_Build): Look up the underlying full
-       view only for a completion.  Be prepared for private types.
-       (Build_Derived_Private_Type): Build an underlying full view
-       for a completion in the general case too.
-
-2020-06-04  Arnaud Charlet  <charlet@adacore.com>
-
-       * back_end.adb, opt.ads, par-prag.adb, sem_ch5.adb,
-       sem_prag.adb, sinfo.adb, sinfo.ads, snames.ads-tmpl,
-       doc/gnat_rm/implementation_defined_pragmas.rst: Remove
-       experimental support for OpenACC.
-       * gcc-interface/misc.c, gcc-interface/trans.c,
-       gcc-interface/lang.opt: Ditto.
-       * gnat_rm.texi: Regenerate.
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
+       * exp_ch4.adb (Component_Is_Unconstrained_UU): Detect both
+       qualified and unqualified names of unchecked union components.
 
-       * checks.adb (Generate_Discriminant_Check): Remove obsolete
-       comment.
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch4.adb (Variant_Is_Unconstrained_UU): Remove redundant
+       check for empty list.
+       * exp_disp.adb (Find_Entry_Index): Simplify by removing
+       redundant check and counting from zero; fix type of a local
+       variable.
+       * sem_ch12.adb (Save_Global_Descendant): Remove an unnecessary
+       special-case for empty lists.
 
-2020-06-04  Gary Dismukes  <dismukes@adacore.com>
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * par-ch3.adb (P_Identifier_Declarations): Add parsing of object
-       renamings that have neither a subtype_mark nor an
-       access_definition. Issue an error if the version is earlier than
-       Ada_2020, and suggest using -gnatX.
-       * sem_ch8.adb (Analyze_Object_Renaming): Handle
-       object_renaming_declarations that don't have an explicit
-       subtype. Errors are issued when the name is inappropriate or
-       ambiguous, and otherwise the Etype of the renaming entity is set
-       from the Etype of the renamed object.
-       * sem_util.adb (Has_Null_Exclusion): Allow for the case of no
-       subtype given in an N_Object_Renaming_Declaration.
-       * sprint.adb (Sprint_Node_Actual): Handle printing of
-       N_Object_Renaming_Declarations that are specified without an
-       explicit subtype.
+       * exp_ch4.adb (Apply_Accessibility_Check): Skip a statically
+       true condition in expanded raise statement.
 
-2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
+2021-05-05  Bob Duff  <duff@adacore.com>
 
-       * sinfo.ads (N_Delta_Aggregate): Document Etype field.
-       (N_Case_Expression): Likewise.
-       (Is_Syntactic_Field) <N_Quantified_Expression>: Adjust.
-       <N_Case_Expression>: Likewise.
+       * libgnat/s-os_lib.adb (Missed_Drive_Letter): Simplify the code.
 
-2020-06-04  Arnaud Charlet  <charlet@adacore.com>
+2021-05-05  Ed Schonberg  <schonberg@adacore.com>
 
-       * adaint.c: Avoid redefining IS_DIR_SEPARATOR macro.
+       * sem_ch5.adb (Analyze_Assignment): Do not emit the warning that
+       a previous value of the target object is useless if the
+       right-hand side of the assignment includes target names.
 
-2020-06-04  Arnaud Charlet  <charlet@adacore.com>
+2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * sem.adb (Walk_Library_Items): Defer processing of main spec
-       after all other specs and before processing bodies.
+       * exp_imgv.adb: Add with/use clauses for Targparm.
+       (Build_Enumeration_Image_Tables): Set type of Threshold to Nat and
+       initialize it to Nat'Last if the type is local and the target does
+       not support descriptors.  Adjust Threshold_For_Size similarly.
+       (Expand_Value_Attribute): Minor tweaks.
 
-2020-06-04  Arnaud Charlet  <charlet@adacore.com>
+2021-05-05  Ghjuvan Lacambre  <lacambre@adacore.com>
 
-       * bindgen.adb (Gen_Adafinal): Adafinal is convention Ada, not C.
+       * exp_ch7.adb (Expand_N_Package_Body): Add CUDA init call.
+       * sem_ch7.adb (Analyze_Package_Body_Helper): Remove CUDA init
+       call.
 
-2020-06-04  Ed Schonberg  <schonberg@adacore.com>
+2021-05-05  Ghjuvan Lacambre  <lacambre@adacore.com>
 
-       * sinput.adb (Sloc_Range): Ignore node in the tree if it appears
-       in a unit different from that of the node whose Sloc range we
-       are computing. This is necessary when computing the source range
-       of a subprogram body whose declaration includes a pre- or
-       postcondition, because declaration and body may appear in
-       different units, and the expanded code for the body includes
-       copies of the contract code.
+       * par-ch5.adb (P_Condition): Check if expression is declare
+       expression.
 
-2020-06-04  Alexandre Oliva  <oliva@adacore.com>
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
-       dumpbase-ext.  Mark auxbase and auxbase-strip for removal.
+       * make.adb (Make): Use GNAT.Ctrl_C.Install_Handler instead of a
+       custom imported procedure.
 
-2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
+2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * sem_attr.adb (Resolve_Attribute) <Access>: Do not generate
-       the secondary message about a missing pragma if the convention
-       of the prefix is Intrinsic.
-       * sem_ch12.adb (Instantiate_Formal_Subprogram): Only set the
-       Convention and the Is_Inlined flag on a null procedure.
+       * exp_imgv.adb (Is_User_Defined_Enumeration_Type): Delete.
+       (Expand_Image_Attribute): Move inline expansion into normal flow of
+       control, move down declarations and remove superfluous processing.
 
-2020-06-04  Justin Squirek  <squirek@adacore.com>
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_ch6.adb (Check_Return_Obj_Accessibility): Change to
-       Check_Return_Construct_Accessibility to better reflect its
-       purpose.  Add loop to properly obtain the object declaration
-       from an expanded extended return statement and add calls to get
-       the original node for associated values. Also, avoid checks when
-       the return statement being examined comes from an internally
-       generated function.
+       * libgnat/g-alleve.adb (Bit_Operation): Now a not-null type.
+       * libgnat/g-sechas.adb (Fill_Buffer_Access): Likewise.
+       * libgnat/s-dwalin.adb (Callback): Likewise.
 
-2020-06-04  Dmitriy Anisimkov  <anisimko@adacore.com>
+2021-05-05  Ghjuvan Lacambre  <lacambre@adacore.com>
 
-       * adaint.c (__gnat_is_absolute_path): Check for directory
-       separator after drive and colon.
-       (IS_DIR_SEPARATOR): Define new inline substitution.
+       * exp_util.adb (Is_Possibly_Unaligned_Object): Remove commented
+       code.
 
-2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
+2021-05-05  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Find_Type_Of_Object):  When In_Spec_Expression is
+       set and the object declaration generates a subtype indication,
+       build the corresponding subtype declaration and place it in tree
+       without the use of Insert_Actions, which is disabled in this
+       context.
+
+2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * debug.adb (d_x): Document extended usage.
+       * exp_imgv.adb (Expand_Standard_Boolean_Image): New procedure.
+       (Expand_Image_Attribute): Call it to expand in line the attribute
+       for standard boolean by default.
+
+2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * debug.adb (d_x): Document new usage.
+       * exp_imgv.adb (Expand_User_Defined_Enumeration_Image): Add Typ
+       parameter and use it throughout the processing.
+       (Expand_Image_Attribute): Retrieve the underlying type of the
+       prefix and use the inline expansion for user-defined enumeration
+       types with a literal string by default.
+
+2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-dorepr.adb (Split): Declare a per-size temporary.
+       Add pragma Annotate.
+
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch4.adb, sem_ch13.adb, sem_eval.adb, sem_res.adb: Remove
+       redundant calls to UI_From_Int.
+
+2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_imgv.ads (Build_Enumeration_Image_Tables): Adjust comment.
+       * exp_imgv.adb (Build_Enumeration_Image_Tables): Add the
+       declaration nodes of the 4 tables to the declaration list of the
+       function body.
+
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-imagen, s-imen16,
+       s-imen32, s-imenu8, s-pehage, s-valuen, s-vaen16, s-vaen32 and
+       s-vaenu8.  Remove s-imenne, s-imgenu and s-valenu.
+       * debug.adb (d_h): Document new usage.
+       * einfo.ads (Lit_Hash): New attribute for enumeration types.
+       (Set_Lit_Hash): Declare.
+       * einfo.adb (Lit_Hash): New function.
+       (Set_Lit_Hash): New procedure.
+       (Write_Field21_Name): Print Lit_Hash for Enumeration_Kind.
+       * exp_imgv.ads (Build_Enumeration_Image_Tables): Fix description
+       and document the hash function and its tables.
+       * exp_imgv.adb: Add with/use clauses for Debug.  Add with clause
+       for System.Perfect_Hash_Generators.
+       (Append_Table_To): New helper routine.
+       (Build_Enumeration_Image_Tables): Call it to build the tables.
+       In the main unit, register the literals with the hash generator.
+       If they are sufficiently many and -gnatd_h is not passed, generate
+       a perfect hash function and its tables; otherwise, generate a dummy
+       hash function.  For the other units, generate only the declaration.
+       In all cases, set Lit_Hash to the entity of the function, if any.
+       (Expand_Value_Attribute): Pass the 'Unrestricted_Access of Lit_Hash,
+       if any, as third argument to the Value_Enumeration_NN function.
+       * gnat1drv.adb (Adjust_Global_Switches): force simpler implementation
+       of 'Value in CodePeer_Mode.
+       * lib.ads (Synchronize_Serial_Number): Add SN parameter.
+       * lib.adb (Synchronize_Serial_Number): Assert that it is larger than
+       the serial number of the current unit and set the latter to it only
+       in this case.
+       * rtsfind.ads (RTU_Id): Add System_Img_Enum_8, System_Img_Enum_16,
+       System_Img_Enum_32, System_Val_Enum_8, System_Val_Enum_16 and
+       System_Val_Enum_32.  Remove System_Img_Enum, System_Img_Enum_New
+       and System_Val_Enum.
+       * sem_attr.adb (Analyze_Access_Attribute): Do not flag a compiler
+       generated Unrestricted_Access attribute as illegal in a declare
+       expression.
+       (RE_Unit_Table): Adjust to above changes.
+       * libgnat/g-heasor.ads: Add pragma Compiler_Unit_Warning.
+       * libgnat/g-table.ads: Likewise.
+       * libgnat/g-pehage.ads: Add with clause and local renaming for
+       System.Perfect_Hash_Generators.
+       (Optimization): Turn into derived type.
+       (Verbose): Turn into renaming.
+       (Too_Many_Tries): Likewise.
+       (Table_Name): Move to System.Perfect_Hash_Generators.
+       (Define): Likewise.
+       (Value): Likewise.
+       * libgnat/g-pehage.adb: Remove with clause for Ada.Directories,
+       GNAT.Heap_Sort_G and GNAT.Table.  Move bulk of implementation
+       to System.Perfect_Hash_Generators, only keep the output part.
+       * libgnat/s-imagen.ads: New generic unit.
+       * libgnat/s-imagen.adb: New body.
+       * libgnat/s-imen16.ads: New unit.
+       * libgnat/s-imen32.ads: Likewise.
+       * libgnat/s-imenu8.ads: Likewise.
+       * libgnat/s-imenne.ads: Adjust description.
+       * libgnat/s-imgenu.ads: Delete.
+       * libgnat/s-imgenu.adb: Likewise.
+       * libgnat/s-pehage.ads: New unit from GNAT.Perfect_Hash_Generators.
+       * libgnat/s-pehage.adb: New body from GNAT.Perfect_Hash_Generators.
+       * libgnat/s-valuen.ads: New generic unit.
+       * libgnat/s-valuen.adb: New body.
+       * libgnat/s-vaen16.ads: New unit.
+       * libgnat/s-vaen32.ads: Likewise.
+       * libgnat/s-vaenu8.ads: Likewise.
+       * libgnat/s-valenu.ads: Delete.
+       * libgnat/s-valenu.adb: Likewise.
+       * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-pehage.o.
+       (GNATBIND_OBJS): Remove s-imgenu.o.
+
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.ads (Apply_Compile_Time_Constraint_Error): Remove
+       parameter Rep from the function spec and "and if the flag Rep is
+       set" from the comment.
+       * sem_util.adb (Apply_Compile_Time_Constraint_Error): Remove
+       parameter Rep.
+
+2021-05-05  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_aggr.adb (Resolve_Indexed_Aggregate): For indexed
+       aggregates with component associations verify that if there is
+       more than one component association then all the choices are
+       static, that the set of choices define a continuous sequence of
+       values, and that if loop specfications appear, they do not
+       include iterator filters or key expressions.
+
+2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-dourea, s-imager,
+       s-imgflt, s-imglfl and s-imgllf.
+       (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorks]: Use s-dorepr__fma.adb.
+       (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorksAE]: Likewise.
+       (LIBGNAT_TARGET_PAIRS) [Aarch64/VxWorks]: Likewise.
+       (LIBGNAT_TARGET_PAIRS) [Aarch64/QNX]: Likewise.
+       (LIBGNAT_TARGET_PAIRS) [Aarch64/FreeBSD]: Likewise.
+       (LIBGNAT_TARGET_PAIRS) [PowerPC/Linux]: Likewise.
+       (LIBGNAT_TARGET_PAIRS) [Aarch64/Linux]: Likewise.
+       (LIBGNAT_TARGET_PAIRS) [IA-64/Linux]: Likewise.
+       (LIBGNAT_TARGET_PAIRS) [IA-64/HP-UX]: Likewise.
+       (LIBGNAT_TARGET_PAIRS) [RISC-V/Linux]: Likewise.
+       (LIBGNAT_TARGET_PAIRS) [PowerPC/Darwin]: Likewise.
+       * exp_attr.adb (Expand_N_Attribute_Reference) [Attribute_Fore]: Use
+       Fixed suffix and Long_Float type.
+       * exp_imgv.adb (Expand_Image_Attribute): For floating-point types,
+       use the routine of the corresponding root type.  For ordinary fixed
+       point types, use Fixed suffix and Long_Float type.
+       (Expand_Value_Attribute): Revert latest change for Long_Long_Float.
+       * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove libgnat units
+       g-hesora.o and s-imgenu.o, add g-heasor.o, g-table.o and s-pehage.o.
+       (GNATBIND_OBJS): Remove libgnat unit s-imgenu.o.
+       * rtsfind.ads (RTU_Id): Add System_Img_Flt, System_Img_LFlt and
+       System_Img_LLF.  Remove System_Img_Real.
+       (RE_Id): Rename RE_Fore_Real to RE_Fore_Fixed.  Add RE_Image_Float,
+       RE_Image_Long_Float and RE_Image_Long_Long_Float.  Rename
+       RE_Image_Ordinary_Fixed_Point to RE_Image_Fixed.
+       (RE_Unit_Table): Adjust to above changes.
+       * libgnat/a-nbnbre.adb (Fixed_Conversions): Use Long_Float instead
+       of Long_Long_Float.
+       * libgnat/a-textio.ads (Field): Remove obsolete comment.
+       * libgnat/a-ticoau.ads (Aux): Adjust ancestor package.
+       * libgnat/a-ticoau.adb: Remove with/use clause for System.Img_Real.
+       (Puts): Call Aux.Set_Image instead of Set_Image_Real.
+       * libgnat/a-ticoio.adb: Add with/use clauses for System.Img_Flt,
+       System.Img_LFlt and System.Img_LLF.
+       (Scalar_Float): Add third actual parameter.
+       (Scalar_Long_Float): Likewise.
+       (Scalar_Long_Long_Float): Likewise.
+       * libgnat/a-tifiio.adb: Add with/use clauses for System.Img_LFlt
+       and System.Val_LFlt.  Remove the one for System.Val_LLF.  Replace
+       Long_Long_Float with Long_Float throughout.
+       * libgnat/a-tifiio__128.adb: Likewise.
+       * libgnat/a-tiflau.ads: Add Set_Image formal parameter.
+       * libgnat/a-tiflau.adb: Add with/use clause for System.Img_Util,
+       remove the one for System.Img_Real.
+       (Put): Call Set_Image instead of Set_Image_Real.
+       (Puts): Likewise.
+       * libgnat/a-tiflio.adb: Add with/use clause for System.Img_Flt,
+       System.Img_LFlt and System.Img_LLF.
+       (Aux_Float): Add third actual parameter.
+       (Aux_Long_Float): Likewise.
+       (Aux_Long_Long_Float): Likewise.
+       * libgnat/a-witeio.ads (Field): Remove obsolete comment.
+       * libgnat/a-wtcoau.ads (Aux): Adjust ancestor package.
+       * libgnat/a-wtcoau.adb: Remove with/use clause for System.Img_Real.
+       (Puts): Call Aux.Set_Image instead of Set_Image_Real.
+       * libgnat/a-wtcoio.adb: Add with/use clauses for System.Img_Flt,
+       System.Img_LFlt and System.Img_LLF.
+       (Scalar_Float): Add third actual parameter.
+       (Scalar_Long_Float): Likewise.
+       (Scalar_Long_Long_Float): Likewise.
+       * libgnat/a-wtfiio.adb: Add with/use clauses for System.Img_LFlt
+       and System.Val_LFlt.  Remove the one for System.Val_LLF.  Replace
+       Long_Long_Float with Long_Float throughout.
+       * libgnat/a-wtfiio__128.adb: Likewise.
+       * libgnat/a-wtflau.ads: Add Set_Image formal parameter.
+       * libgnat/a-wtflau.adb: Add with/use clause for System.Img_Util,
+       remove the one for System.Img_Real.
+       (Put): Call Set_Image instead of Set_Image_Real.
+       (Puts): Likewise.
+       * libgnat/a-wtflio.adb: Add with/use clause for System.Img_Flt,
+       System.Img_LFlt and System.Img_LLF.
+       (Aux_Float): Add third actual parameter.
+       (Aux_Long_Float): Likewise.
+       (Aux_Long_Long_Float): Likewise.
+       * libgnat/a-ztexio.ads (Field): Remove obsolete comment.
+       * libgnat/a-ztcoau.ads (Aux): Adjust ancestor package.
+       * libgnat/a-ztcoau.adb: Remove with/use clause for System.Img_Real.
+       (Puts): Call Aux.Set_Image instead of Set_Image_Real.
+       * libgnat/a-ztcoio.adb: Add with/use clauses for System.Img_Flt,
+       System.Img_LFlt and System.Img_LLF.
+       (Scalar_Float): Add third actual parameter.
+       (Scalar_Long_Float): Likewise.
+       (Scalar_Long_Long_Float): Likewise.
+       * libgnat/a-ztfiio.adb: Add with/use clauses for System.Img_LFlt
+       and System.Val_LFlt.  Remove the one for System.Val_LLF.  Replace
+       Long_Long_Float with Long_Float throughout.
+       * libgnat/a-ztfiio__128.adb: Likewise.
+       * libgnat/a-ztflau.ads: Add Set_Image formal parameter.
+       * libgnat/a-ztflau.adb: Add with/use clause for System.Img_Util,
+       remove the one for System.Img_Real.
+       (Put): Call Set_Image instead of Set_Image_Real.
+       (Puts): Likewise.
+       * libgnat/a-ztflio.adb: Add with/use clause for System.Img_Flt,
+       System.Img_LFlt and System.Img_LLF.
+       (Aux_Float): Add third actual parameter.
+       (Aux_Long_Float): Likewise.
+       (Aux_Long_Long_Float): Likewise.
+       * libgnat/s-dorepr.adb: New file.
+       * libgnat/s-dorepr__fma.adb: Likewise.
+       * libgnat/s-dourea.ads: Likewise.
+       * libgnat/s-dourea.adb: Likewise.
+       * libgnat/s-forrea.ads (Fore_Real): Rename into...
+       (Fore_Fixed): ...this and take Long_Float parameters.
+       * libgnat/s-forrea.adb (Fore_Real): Likewise.
+       (Fore_Fixed): Likewise.
+       * libgnat/s-imgrea.ads: Move to...
+       (Set_Image_Real): Turn into mere renaming.
+       * libgnat/s-imager.ads: ...here.
+       (Image_Ordinary_Fixed_Point): Turn into...
+       (Image_Fixed_Point): ...this.
+       * libgnat/s-imgrea.adb: Add pragma No_Body.  Move to...
+       * libgnat/s-imager.adb: ...here.
+       (Image_Ordinary_Fixed_Point): Turn into...
+       (Image_Fixed_Point): ...this.
+       (Is_Negative): Replace Long_Long_Float with Num.
+       (Set_Image_Real): Likewise.  Use Double_T instead of single Num
+       throughout the algorithm.
+       * libgnat/s-imgflt.ads: New file.
+       * libgnat/s-imglfl.ads: Likewise.
+       * libgnat/s-imgllf.ads: Likewise.
+       * libgnat/s-imagef.ads: Adjust comment.
+       * libgnat/s-imguti.ads (Max_Real_Image_Length): New named number.
+       * libgnat/s-powflt.ads (Maxpow): Adjust.
+       (Powten): Turn into an exact table of double Float.
+       * libgnat/s-powlfl.ads (Maxpow): Adjust.
+       (Powten): Turn into an exact table of double Long_Float.
+       * libgnat/s-powllf.ads (Maxpow): Adjust.
+       (Powten): Turn into an exact table of double Long_Long_Float.
+       * libgnat/s-valrea.ads: Change order of formal parameters.
+       * libgnat/s-valrea.adb: Add with clause for System.Double_Real.
+       (Double_Real): New instantiation.
+       (Fast2Sum): Delete.
+       (Large_Powten): New function.
+       (Integer_to_Real): Use Quick_Two_Sum instead of Fast2Sum.  Convert
+       the value to Double_T.  Do the scaling in Double_T for base 10.
+       * libgnat/s-valflt.ads: Remove with/use clasue for Interfaces,
+       add it for System.Unsigned_Types.  Use Unsigned.
+       * libgnat/s-vallfl.ads: Remove with/use clasue for Interfaces,
+       add it for System.Unsigned_Types.  Use Long_Unsigned.
+       * libgnat/s-valllf.ads: Remove with/use clasue for Interfaces,
+       add it for System.Unsigned_Types.  Use Long_Long_Unsigned.
+
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_eval.adb (Eval_Arithmetic_Op): Call
+       Set_Raises_Constraint_Error on real division by zero just like
+       it is called for integer division by zero earlier in this
+       routine.
+
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * freeze.adb (Build_Renamed_Body): Simplify IF and WHILE
+       statements with the same condition.
+
+2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * pprint.adb (Expr_Name): Introduce local constants to make the
+       code more readable and avoid repeated calls to Next to reach the
+       ELSE part of an if-expression.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * pprint.adb: Remove qualification of arbitrary calls to
+       Sinfo.Expressions and Sinfo.Parameter_Associations.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * pprint.adb (Expr_Name): Simplify with functional variant of
+       UI_Image.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * pprint.adb (To_Mixed): Removed.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * pprint.adb (List_Name_Count): Change type from Integer to
+       Natural.
+
+2021-05-04  Yannick Moy  <moy@adacore.com>
+
+       * pprint.adb (Expression_Image): Special case for
+       expression-with-actions.
+
+2021-05-04  Bob Duff  <duff@adacore.com>
+
+       * exp_ch4.adb (Expand_Concatenate): Remove the non-optimization.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * lib-xref.adb (Generate_Reference_To_Formals): Remove dedicated
+       branch for generic subprograms (they are now handled together
+       with non-generic subprograms in the ELSE branch); replace a
+       low-level Ekind membership test with a high-level call to
+       Is_Access_Subprogram_Type.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch12.adb (Check_Abstract_Primitives): Match First_Formal
+       with Next_Formal.
+       * sem_ch6.adb (Is_Non_Overriding_Operation): Likewise.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Collect_Global_Item): Iterate directly over
+       formals.
 
-       * checks.ads: Update documentation about range checks and fix
-       minor other things.
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
+       * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update
+       comment; this routine is no longer used by GNATprove.
+       * sem_prag.adb (Find_Role): The IN parameter is on output only
+       when it belongs to non-function; also, the otherwise constant
+       object can only be written by a non-function.
+       (Collect_Global_Item): The IN parameter can only be written when
+       it belongs to non-function; also, unnest this check to make it
+       easier to read.
 
-       * sem_ch3.adb (Array_Type_Declaration): Apply special handling
-       of private index types to generic packages and restrict it to
-       index types defined in the current scope.
+2021-05-04  Arnaud Charlet  <charlet@adacore.com>
 
-2020-06-04  Arnaud Charlet  <charlet@adacore.com>
+       * libgnat/s-assert.ads (Assert_Failure): Now a renaming of
+       Assertion_Error.
+       * libgnat/a-assert.ads (Assertion_Error): Now a first class
+       citizen.  Remove dependency on System.Assertions.
+       * gcc-interface/a-assert.ads, gcc-interface/a-assert.adb: New.
+       * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add
+       a-assert.o from gcc-interface.
 
-       * libgnat/a-exextr.adb (Global_Unhandled_Action): New global
-       variable.
-       (Notify_Exception): Take into account Global_Unhandled_Action
-       and fix latent race condition.
-       (Exception_Action): Mark Favor_Top_Level so that variables can
-       be atomic.
-       (Global_Action): Mark atomic to remove the need for a lock.
-       * libgnat/g-excact.ads, libgnat/g-excact.adb
-       (Register_Global_Unhandled_Action): New procedure.
-       (Register_Global_Action): Remove lock.
-       * libgnat/s-stalib.ads (Raise_Action): Mark Favor_Top_Level to
-       be compatible with Exception_Action.
-       * sem_warn.adb (Warn_On_Unreferenced_Entity): Fix logic wrt
-       Volatile entities and entities with an address clause: the code
-       did not match the comment/intent.
-
-2020-06-04  Arnaud Charlet  <charlet@adacore.com>
-
-       * comperr.adb (Compiler_Abort): Update URL and bug report
-       instructions.
-
-2020-06-04  Steve Baird  <baird@adacore.com>
-
-       * libgnat/s-imgrea.ads: Declare a named number
-       Max_Real_Image_Length with value 5200.  Provide a comment
-       explaining why this value was chosen.
-       * libgnat/s-imgrea.adb (Set_Image_Real): Increase the upper
-       bound of the local String variable Digs to
-       Max_Real_Image_Length.
-       * libgnat/a-tiflau.adb (Put): Increase the upper bound of the
-       local String variable Buf to Max_Real_Image_Length.
-       (Puts): Increase the upper bound of the local String variable
-       Buf to Max_Real_Image_Length.
-
-2020-06-04  Arnaud Charlet  <charlet@adacore.com>
-
-       * libgnarl/a-dynpri.adb, libgnarl/a-taside.adb,
-       libgnarl/a-taster.adb, libgnarl/s-interr.adb,
-       libgnarl/s-interr__sigaction.adb, libgnarl/s-taasde.adb,
-       libgnarl/s-taenca.adb, libgnarl/s-taenca.ads,
-       libgnarl/s-taprop.ads, 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-tasque.adb, libgnarl/s-tasque.ads,
-       libgnarl/s-tasren.adb, libgnarl/s-tasren.ads,
-       libgnarl/s-tassta.adb, libgnarl/s-tasuti.adb,
-       libgnarl/s-tasuti.ads, libgnarl/s-tpoben.adb,
-       libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb,
-       libgnarl/s-tposen.adb, libgnat/s-parame.ads,
-       libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads,
-       libgnat/s-parame__vxworks.ads: Remove references to Single_Lock
-       and Global_Lock.
-
-2020-06-04  Arnaud Charlet  <charlet@adacore.com>
-
-       * libgnat/s-atopar.adb, libgnat/s-atopex.adb: Use Object_Size
-       instead of Size, otherwise many derived types will be rejected
-       (e.g. a type with a 14 bits 'Size and a 16 bits 'Object_Size).
-
-2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * sem_ch12.adb (Copy_Generic_Node): Add special handling for a
-       conversion between access types.
-
-2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * sem_ch12.adb (Check_Generic_Actuals): Also restore the proper
-       views of the actuals of the parent instances if the formals are
-       used as actuals of the children.
-       (Instantiate_Type): Add comment.
-
-2020-06-04  Gary Dismukes  <dismukes@adacore.com>
-
-       * sem_ch12.adb: Minor editorial fixes.
-
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * sem_ch12.adb (Denotes_Previous_Actual): Delete.
-       (Check_Generic_Actuals): Do not special case array types whose
-       component type denotes a previous actual.  Do not special case
-       access types whose base type is private.
-       (Check_Private_View): Remove code dealing with secondary types.
-       Do not switch the views of an array because of its component.
-       (Copy_Generic_Node): Add special handling for a comparison
-       operator on array types.
-       (Instantiate_Type): Do not special case access types whose
-       designated type is private.
-       (Set_Global_Type): Do not special case array types whose
-       component type is private.
-
-2020-06-03  Justin Squirek  <squirek@adacore.com>
-
-       * sem_ch10.adb (Process_Body_Clauses): Add loop to interate
-       through all prefixes in a use_type clause so that all packages
-       in the expanded name get examined for effectiveness.
-
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * sem_ch12.adb (Check_Private_View): Clean up implementation of
-       second main case, when the generic sees the private declaration.
-
-2020-06-03  Arnaud Charlet  <charlet@adacore.com>
-
-       * libgnat/a-nbnbin.ads: Minor reformatting.
-       * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb (Is_Valid): Add
-       convention Intrinsic. Add detection of uninitialized big reals.
-
-2020-06-03  Arnaud Charlet  <charlet@adacore.com>
-
-       * sem_util.ads, sem_util.adb (Side_Effect_Free_Statements,
-       Side_Effect_Free_Loop): New functions.
-       (Has_Non_Null_Statements): Consider N_Call_Marker as a null
-       statement.
-       * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Call
-       Set_Is_Null_Loop even inside a generic instantiation.
-       (Analyze_Loop_Statement): Mark for removal loops with no side
-       effects.
-
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * opt.ads (Allow_Integer_Address): Fix typo in comment.
-       * stand.ads (Standard_Address): New entity.
-       * cstand.adb (Create_Standard): Create it.
-       * sem_ch4.adb (Operator_Check): Convert the operands of an
-       operation with addresses and integers to Standard_Address
-       if pragma Allow_Integer_Address is in effect.
-
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * libgnat/s-atopar.adb (Atomic_Fetch_And_Add): Make use of an
-       equivalent static expression.
-       (Atomic_Fetch_And_Subtract): Likewise.
-       (Is_Lock_Free): Likewise.
-       * libgnat/s-atopex.adb (Atomic_Exchange): Likewise.
-       (Atomic_Compare_And_Exchange): Likewise.
-       (Is_Lock_Free): Likewise.
-
-2020-06-03  Vadim Godunko  <godunko@adacore.com>
-
-       * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
-       libgnat/s-parame__hpux.ads: Fix typos.
-
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_util.adb (Remove_Side_Effects): For a type conversion, do
-       not remove the side effects of the expression only if it is of
-       universal integer type.
-
-2020-06-03  Arnaud Charlet  <charlet@adacore.com>
-
-       * libgnat/s-aotase.ads, libgnat/s-atoope.ads,
-       libgnat/s-atopar.ads, libgnat/s-atopex.ads: Update header.
-
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Also fold the
-       conversion for literals of enumeration types.
-
-2020-06-03  Yannick Moy  <moy@adacore.com>
-
-       * rtsfind.adb (Load_RTU): Correctly set/reset global variable to
-       ignore SPARK_Mode in instances around loading.
-       * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Accept Off
-       without prior On.
-       * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise.
-       * sem_prag.adb (Analyze_Pragma): Always take into account
-       SPARK_Mode Off.
-
-2020-06-03  Arnaud Charlet  <charlet@adacore.com>
-
-       * frontend.adb (Frontend): Call (dummy for now) tree checker.
-       * debug.adb: Reserve -gnatd_V for the tree checker.
-       * vast.ads, vast.adb: New files.
-       * gcc-interface/Make-lang.in: Add vast.o.
-
-2020-06-03  Justin Squirek  <squirek@adacore.com>
-
-       * libgnat/a-cborse.adb, libgnat/a-cihase.adb,
-       libgnat/a-ciorse.adb, libgnat/a-coorse.adb: Modified to use
-       'Unrestricted_Access in certain cases where static accessibility
-       errors were triggered.
-       * exp_ch6.adb (Expand_Simple_Return_Statement): Add generation
-       of dynamic accessibility checks as determined by
-       Is_Special_Aliased_Formal_Access.
-       * sem_attr.adb (Resolve_Attribute): Add call to
-       Is_Special_Aliased_Formal_Access to avoid performing static
-       checks where dynamic ones are required.
-       * sem_ch6.adb (Check_Return_Obj_Accessibility): Handle renamed
-       objects within component associations requiring special
-       accessibility checks.
-       * sem_util.adb, sem_util.ads (Is_Special_Aliased_Formal_Access):
-       Created to detect the special case where an aliased formal is
-       being compared against the level of an anonymous access return
-       object.
-       (Object_Access_Level): Remove incorrect condition leading to
-       overly permissive accessibility levels being returned on
-       explicitly aliased parameters.
-
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * einfo.ads (Enum_Pos_To_Rep): Adjust description.
-       * exp_attr.adb (Expand_N_Attribute_Reference) <Pred>:
-       Reimplement in the case of an enumeration type with non-standard
-       but contiguous representation.
-       <Succ>: Likewise.
-       <Val>: Likewise.
-       * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Count the
-       literals in the first loop.  If the representation is
-       contiguous, just build the index type of the array type and set
-       Enum_Pos_To_Rep to it.
-
-2020-06-03  Gary Dismukes  <dismukes@adacore.com>
-
-       * exp_attr.adb (Expand_Loop_Entry_Attribute): Revise loop that
-       resets the scopes of entities associated with Loop_Id to the
-       scope of the new function, so the resetting is not restricted to
-       itypes, but excludes loop parameters and the function entity
-       itself. However, this fix is believed to be incomplete and a ???
-       comment is added to indicate that.
-
-2020-06-03  Bob Duff  <duff@adacore.com>
-
-       * libgnat/s-regexp.ads: Fix comment
-
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_attr.adb (Expand_N_Attribute_Reference) <Enum_Rep>:
-       In the case of an enumeration type, do an intermediate
-       conversion to a small integer type.  Remove useless stuff.
-       <Finalization_Size>: Do not hardcode Universal_Integer and
-       fix a type mismatch in the assignment to the variable.
-       <Max_Size_In_Storage_Elements>: Likewise.
-       <From_Any>: Do not redefine the Ptyp local variable.
-       <To_Any>: Likewise.
-       <TypeCode>: Likewise.
-       <Pos>: Small tweaks.
-       <Val>: For an enumeration type with standard representation,
-       apply the range check to the expression of a convertion to
-       Universal_Integer, if any.  For an integer type, expand to
-       a mere conversion.
-
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * libgnat/s-rannum.adb (Random_Discrete): In the 32-bit case,
-       use the same linear implementation as in the 64-bit case when
-       the type has a contiguous representation.
-
-2020-06-03  Gary Dismukes  <dismukes@adacore.com>
-
-       * sem_util.adb (Build_Class_Wide_Clone_Decl): Call
-       Set_Debug_Info_Needed to set the Needs_Debug_Info flag on
-       Clone_Id if the flag is set on Spec_Id.
-
-2020-06-03  Yannick Moy  <moy@adacore.com>
-
-       * inline.adb (Expand_Inlined_Call): Do not suppress checks on
-       inlined code in GNATprove mode.
-
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * einfo.ads (Has_Contiguous_Rep): Fix typo in comment.
-
-2020-06-03  Piotr Trojanek  <trojanek@adacore.com>
-
-       * checks.adb, einfo.adb, exp_aggr.adb, exp_ch4.adb, exp_ch6.adb,
-       exp_unst.adb, exp_util.adb, freeze.adb, inline.adb, repinfo.adb,
-       sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_ch13.adb,
-       sem_ch3.adb, sem_ch4.adb, sem_ch8.adb, sem_elab.adb,
-       sem_eval.adb, sem_prag.adb, sem_res.adb, sem_smem.adb,
-       sem_util.adb, treepr.adb: Replace uses of Next_ functions with
-       corresponding procedures.
-
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_attr.adb (Attribute_Valid): Use Standard_Long_Long_Integer
-       in lieu of Universal_Integer as large integer type.
-       * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Likewise.
-
-2020-06-03  Arnaud Charlet  <charlet@adacore.com>
-
-       * libgnat/s-auxdec.ads (Address_Int): New.
-
-2020-06-03  Arnaud Charlet  <charlet@adacore.com>
-
-       * aspects.adb, aspects.ads, atree.adb, atree.ads, elists.adb,
-       elists.ads, fname.adb, fname.ads, gnat1drv.adb, lib.adb,
-       lib.ads, namet.adb, namet.ads, nlists.adb, nlists.ads, opt.adb,
-       opt.ads, osint-c.adb, osint-c.ads, repinfo.adb, repinfo.ads,
-       sem_aux.adb, sem_aux.ads, sinput.adb, sinput.ads, stand.ads,
-       stringt.adb, stringt.ads, switch-c.adb, table.adb, table.ads,
-       uintp.adb, uintp.ads, urealp.adb, urealp.ads (Tree_Read,
-       Tree_Write): Remove generation of ASIS trees.
-       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
-       Remove -gnatt and -gnatct documentation.
-       * gnat_ugn.texi: Regenerate.
-       * tree_in.ads, tree_in.adb, tree_io.ads, tree_io.adb,
-       tree_gen.ads, tree_gen.adb, stand.adb: Remove.
-       * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove
-       references to tree_gen.o tree_in.o tree_io.o.
+2021-05-04  Yannick Moy  <moy@adacore.com>
 
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
+       * erroutc.adb (Matches): Move spec...
+       * erroutc.ads (Matches): ...here.
 
-       * opt.ads (Disable_FE_Inline): Move around.
-       (Disable_FE_Inline_Always): Likewise.
+2021-05-04  Yannick Moy  <moy@adacore.com>
 
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
+       * gnat1drv.adb (Adjust_Global_Switches): Force error marker in
+       GNATprove mode.
 
-       * checks.adb (Is_Single_Attribute_Reference): New predicate.
-       (Generate_Range_Check): Do not force the evaluation if the
-       node is a single attribute reference.
-       * exp_util.adb (Side_Effect_Free_Attribute): New predicate.
-       (Side_Effect_Free) <N_Attribute_Reference>: Call it.
-       (Remove_Side_Effects): Remove the side effects of the prefix
-       for an attribute reference whose prefix is not a name.
+2021-05-04  Bob Duff  <duff@adacore.com>
+
+       * binde.adb: No need for ??? marks in Binde, because it is
+       superseded by Bindo.
+       * bindo-writers.adb (Write_Unit_Closure): Verified that -Ra
+       works.
+       * exp_ch4.adb, sinfo.ads (Expand_N_Type_Conversion): Rules for
+       conversions passed to gigi are documented in sinfo.ads.
+       (Expand_N_Unchecked_Type_Conversion): Comment is a duplicate of
+       one in sinfo.ads.
+       (Expand_N_In): Robert already added sufficient comments years
+       after the ??? comment was inserted.
+       (Expand_Membership_Minimize_Eliminate_Overflow): I don't see any
+       reason why Stand should export Long_Long_Integer'Base -- it
+       doesn't export any other base types.
+       (Size_In_Storage_Elements): We are doing an allocator, so we
+       don't care about sizes in bits.
+       (Expand_N_Allocator): PolyORB isn't going to be significantly
+       improved, so we're not going to mess with remote access to
+       class-wide types.
+       (Optimize_Return_Stmt): It's not important to optimize return
+       statements in predicate functions -- there are many
+       more-important optimizations we could do. Keep part of the
+       comment without "???", to clarify why the "and then ...".
+       (User_Defined_Primitive_Equality_Op): The optimization doesn't
+       seem important enough.
+       (Expand_N_Unchecked_Type_Conversion): Refactor to use
+       Expand_N_Unchecked_Expression.
+       (Make_Array_Comparison_Op): This seems like a case of "it it's
+       not broken, don't fix it". Too much risk of causing bugs.
+       * debug_a.adb: Remove ??? comments asking why Current_Error_Node
+       is maintained unconditionally, and add a comment explaining why.
+       * errout.adb: These kinds of minor bugs do indeed exist, but
+       we're never going to get around to fixing them "properly", so we
+       need this code for robustness.
+       * gnatchop.adb (Read_File): Document when read can fail.
+       * gnatdll.adb (Parse_Command_Line): Nobody is complaining about
+       these arbitrary limits, so no need to use Table. Increase the
+       limits just in case.  It is clear from the names what they are
+       limits on.
+       * gnatlink.adb: Add needed comments.
+       (Delete): An existing comment makes clear it's intentional, and
+       it's been like that since 1996.
+       (Process_Args): Improve comments.
+       (Search_Library_Path): Refactoring to avoid deep nesting.
+       * inline.adb (Build_Body_To_Inline): Probably won't get around
+       to doing that optimization.
+       (Is_Unit_Subprogram): No, this should not be moved to Sem_Aux,
+       because it is too specialized to this context.
+       (Do_Reset): No comment is needed here; it's clear from the
+       comment on Reset_Dispatching_Calls. Do_Reset is an artificial
+       subprogram; if we had proper iterators, it would just be an if
+       statement in the loop.
+       (Rewrite_Function_Call): Probably won't get around to doing that
+       optimization.
+       * layout.adb (Layout_Type): The gigi comment doesn't need to be
+       a ??? comment, and it's been that way since 2000.  The
+       limitation to scalars will likely never be investigated, and
+       it's been that way since 2009.
+       * lib.adb (Check_Same_Extended_Unit): This doesn't look like
+       something that needs fixing; it looks like a permanent
+       workaround.
+       * lib-load.adb (Change_Main_Unit_To_Spec): It is good enough in
+       practice.
+       (Load_Unit): Nobody will ever get around to investigating the
+       obscure PMES oddity, and the optimization is not worth the
+       trouble.
+       * live.adb: It's not worth documenting this. It is used only
+       with a debug switch. Nobody who has done significant work on it
+       is still around, so it would require substantial investigation.
+       * mdll.ads: I see no reason for USE.
+       * namet.ads: Routines are obsolete, but they're not going
+       anywhere anytime soon (too much work, and surprisingly delicate
+       because of dependences on global variables).
+       * osint.ads: Minor.
+       * osint.adb: Improve comments.
+       (Full_Lib_File_Name): Use Smart_Find_File.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_prag.adb, sem_prag.adb: Replace low-level Ekind membership
+       tests with a high-level call to Is_Formal_Object.
+
+2021-05-04  Arnaud Charlet  <charlet@adacore.com>
+
+       * cstand.adb, sprint.adb, switch-c.adb, xr_tabls.ads,
+       xr_tabls.adb, xref_lib.adb: Address ??? comments.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Analyze_Global_Item): Take subprogram kind into
+       account when accepting or rejecting a constant of an
+       access-to-variable type as a global Output/In_Out; do this check
+       inside an ELSIF branch to avoid unnecessary evaluation of the
+       subsequent condition.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Role_Error, Usage_Error): Replace calls to
+       Name_Find and Get_Name_String with a call to To_String.
+
+2021-05-04  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_aggr.adb (Build_Siz_Exp): new function, subsidiary of
+       Expand_Container_Aggregate, to create an expression to be used
+       in the dynamic allocation of a container with a single container
+       element association.
+       (Add_Range): Handle static bounds of ranges over enumerations.
+       (Expand_Container_Aggregate): Add declaration for size
+       expression when needed, and use it in container object
+       declaration for container.
+
+2021-05-04  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch7.adb (Build_Finalizer_Helper.New_Finalizer_Name):
+       Unnest so that it can be reused.
+       (Build_Finalizer_Helper.Process_Declarations): Call the
+       xxx__finalize_body procedure of a package instantiation in case
+       it contains finalization statements.  Code clean ups.
+       (Build_Finalizer_Helper.Create_Finalizer): Export and set an
+       Interface_Name for library level finalizers since these may be
+       imported now.
+       (Build_Finalizer_Helper): Need to process library level package
+       body instantiations which may contain objects requiring
+       finalization.
+       * libgnat/s-finmas.ads: Fix typo.
+
+2021-05-04  Arnaud Charlet  <charlet@adacore.com>
+
+       * checks.adb (Append_Range_Checks, Apply_Selected_Length_Checks,
+       Determine_Range, Insert_Range_Checks,
+       Install_Null_Excluding_Check, Selected_Length_Checks,
+       Selected_Range_Checks): Address ??? comments and code cleanups.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
+       Apply the rule even with no explicit Global contract (and remove
+       a dead condition for Refined_Global).
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
+       Extend check to protected entries.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
+       Fix reference to SPARK RM rule number.
+
+2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_intr.adb: Remove with/use clauses for Urealp.
+       (Expand_Is_Negative): Delete.
+       (Expand_Intrinsic_Call): Do not call it.
+       * rtsfind.ads (RE_Id): Remove RE_Float_Unsigned.
+       (RE_Unit_Table): Remove entry for RE_Float_Unsigned.
+       * snames.ads-tmpl (Name_Is_Negative): Delete.
+       * libgnat/s-imgrea.ads (Set_Image_Real): Fix mode of S parameter.
+       * libgnat/s-imgrea.adb: Add with/use clauses for System.Img_Util.
+       (LLU): New subtype.
+       (Maxdigs): Use it.
+       (Is_Negative): Reimplement.
+       (Image_Floating_Point): Simplify.
+       (Set_Image_Real): Fix mode of S parameter.  Remove the low-level
+       processing on characters.  Flip the sign of the Scale variable.
+       Compute the maximum number of digits for the straight notation.
+       Call Set_Decimal_Digits at the end to do the final formatting.
+       * libgnat/s-imguti.ads (Floating_Invalid_Value): New type.
+       (Set_Floating_Invalid_Value): New procedure.
+       * libgnat/s-imguti.adb (Set_Floating_Invalid_Value): Implement it
+       based on existing code from Set_Image_Real.
+       * libgnat/s-unstyp.ads (Float_Unsigned): Delete.
+
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * csets.adb (Initialize): Refactor into CASE statement; raise
+       exception on unsupported code of character set (it will be
+       gently rejected earlier when scanning command line switches).
+       * switch-b.adb (Scan_Binder_Switches): Refactor into a
+       membership expression; add missing '9' choice; reorder as
+       described by GNAT UG, section 4.3.11.
+       * switch-c.adb (Scan_Front_End_Switches): Refactor into a
+       membership expression and reorder as above.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst
+       (gnatic): Mention '5' as an allowed value for "c".
+       * gnat_ugn.texi: Regenerate.
 
-2020-06-03  Arnaud Charlet  <charlet@adacore.com>
+2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
 
-       * switch-c.adb (Scan_Front_End_Switches): Remove processing of
-       -gnatt.
-       * usage.adb (Usage): Remove mention of -gnatt.
+       * errout.adb (Error_Msg_Internal): Add assertion to prevent
+       style mistakes reappearing in the future.
 
-2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
+2021-05-04  Javier Miranda  <miranda@adacore.com>
 
-       * sinfo.ads: Minor tweaks in commentary.
+       * exp_ch4.adb (Tagged_Membership): Remove wrong condition that
+       is not consistent with the documentation of this subprogram.
 
-2020-06-02  Alexandre Oliva  <oliva@adacore.com>
+2021-05-04  Yannick Moy  <moy@adacore.com>
 
-       * lib.ads (Compilation_Switches): Remove -auxbase from
-       comments.
-       * switch.ads (Is_Internal_GCC_Switch): Likewise.
+       * sem_res.adb (Valid_Conversion): Make message a continuation.
+
+2021-05-04  Arnaud Charlet  <charlet@adacore.com>
+
+       * styleg.adb: Address ??? comments.
 
-2020-06-02  Arnaud Charlet  <charlet@adacore.com>
+2021-05-03  Arnaud Charlet  <charlet@adacore.com>
 
-       * atree.ads, checks.adb, contracts.adb, debug.adb, einfo.ads,
-       exp_ch3.adb, exp_util.adb, expander.ads, expander.adb,
-       frontend.adb, gnat1drv.adb, itypes.adb, lib.ads, namet.ads,
-       opt.adb, opt.ads, par-prag.adb, repinfo.ads, sem_aggr.adb,
-       sem_aux.ads, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
-       sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb,
-       sem_dim.adb, sem_elab.adb, sem_prag.adb, sem_prag.ads,
-       sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, stand.ads,
-       tree_io.ads: Remove references to ASIS_Mode.
+       * libgnat/a-stunau.ads, libgnat/a-stunau.adb,
+       libgnat/a-stunau__shared.adb (Set_String): Remove old version,
+       replace by a new version taking a callback to set the string.
 
-2020-06-02  Javier Miranda  <miranda@adacore.com>
+2021-05-03  Arnaud Charlet  <charlet@adacore.com>
 
-       * exp_ch4.adb (Generate_Temporary): New subprogram of
-       Discrete_Range_Check that generates a temporary to facilitate
-       the C backend the code generation of the unchecked conversion
-       since the size of the source type may differ from the size of
-       the target type.
+       * libgnat/a-coorma.ads (Map): Add missing
+       Preelaborate_Initialization.
 
-2020-06-02  Arnaud Charlet  <charlet@adacore.com>
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
 
-       * ada_get_targ.adb: Bump copyright year.
+       * exp_ch4.adb (Analyze_Number_Declaration, Expand_N_Op_Expon):
+       Simplify with Is_Universal_Numeric_Type.
+       * sem_attr.adb (Resolve_Attribute): Likewise.
+       * sem_ch3.adb: Likewise.
+       * sem_ch4.adb (Check_Common_Type, Check_Arithmetic_Pair):
+       Likewise.
+       * sem_eval.adb (Eval_Unary_Op, Test_In_Range): Likewise.
+       * sem_res.adb (Resolve_Arithmetic_Op, Resolve_Membership_Op,
+       Resolve_Op_Expon, Resolve_Unary_Op, Set_Mixed_Mode_Operand,
+       Set_Operand_Type): Likewise.
+       * sem_type.adb (Disambiguate, Find_Unique_Type): Likewise.
+       * sem_util.adb (Universal_Interpretation): Likewise.
+
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_aggr.adb (Max_Aggregate_Size): Add header boxes for nested
+       routines; move a local constant after nested subprogram bodies;
+       refill comment.
+
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute): Reuse Resolve with implicit
+       type when analysing attribute Priority.
+       * sem_ch5.adb (Analyze_Case_Statement): Likewise for a rare case
+       in analysis of case statements.
+       (Analyze_Iterator_Specification): Likewise for non-overloaded
+       domain of iteration.
+
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo.adb (Write_Entity_Info): Simplify an Ekind membership
+       test.
+       * exp_aggr.adb (Is_CCG_Supported_Aggregate): Likewise.
+
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch7.adb (Build_Finalize_Statements): Refine type of a
+       local counter variable.
+       * exp_dist.adb (Append_Record_Traversal): Refine type of Counter
+       parameter.
+       (Add_Process_Element): Likewise.
+       (Build_From_Any_Call): Refine type of a local counter variable.
+       (Build_From_Any_Function): Likewise.
+       (Build_To_Any_Function): Likewise.
+       (FA_Rec_Add_Process_Element): Likewise.
+       (TA_Append_Record_Traversal): Likewise.
+       (TA_Rec_Add_Process_Element): Likewise.
+
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+
+       * rtsfind.adb (SPARK_Implicit_Load): Simplify with Discard_Node.
+
+2021-05-03  Arnaud Charlet  <charlet@adacore.com>
+
+       * Makefile.rtl: Update copyright notice.
+       * ada_get_targ.adb: Likewise.
        * adabkend.adb: Likewise.
        * adabkend.ads: Likewise.
        * adadecode.c: Likewise.
        * exp_pakd.ads: Likewise.
        * exp_prag.adb: Likewise.
        * exp_prag.ads: Likewise.
+       * exp_put_image.adb: Likewise.
+       * exp_put_image.ads: Likewise.
        * exp_sel.adb: Likewise.
        * exp_sel.ads: Likewise.
        * exp_smem.adb: Likewise.
        * freeze.ads: Likewise.
        * frontend.adb: Likewise.
        * frontend.ads: Likewise.
+       * gcc-interface/ada-tree.h: Likewise.
+       * gcc-interface/ada.h: Likewise.
+       * gcc-interface/cuintp.c: Likewise.
+       * gcc-interface/decl.c: Likewise.
+       * gcc-interface/gadaint.h: Likewise.
+       * gcc-interface/gigi.h: Likewise.
+       * gcc-interface/lang-specs.h: Likewise.
+       * gcc-interface/misc.c: Likewise.
+       * gcc-interface/system.ads: Likewise.
+       * gcc-interface/targtyps.c: Likewise.
+       * gcc-interface/trans.c: Likewise.
+       * gcc-interface/utils.c: Likewise.
+       * gcc-interface/utils2.c: Likewise.
        * get_scos.adb: Likewise.
        * get_scos.ads: Likewise.
        * get_targ.adb: Likewise.
        * ghost.ads: Likewise.
        * gnat1drv.adb: Likewise.
        * gnat1drv.ads: Likewise.
+       * gnat_cuda.adb: Likewise.
+       * gnat_cuda.ads: Likewise.
        * gnatbind.adb: Likewise.
        * gnatbind.ads: Likewise.
        * gnatchop.adb: Likewise.
        * gnatprep.adb: Likewise.
        * gnatprep.ads: Likewise.
        * gnatvsn.adb: Likewise.
+       * gnatvsn.ads: Likewise.
        * gnatxref.adb: Likewise.
        * gprep.adb: Likewise.
        * gprep.ads: Likewise.
        * libgnarl/a-tasatt.ads: Likewise.
        * libgnarl/a-taside.adb: Likewise.
        * libgnarl/a-taside.ads: Likewise.
+       * libgnarl/a-tasini.adb: Likewise.
+       * libgnarl/a-tasini.ads: Likewise.
        * libgnarl/a-taster.adb: Likewise.
        * libgnarl/g-boubuf.adb: Likewise.
        * libgnarl/g-boubuf.ads: Likewise.
        * libgnat/a-cwila9.ads: Likewise.
        * libgnat/a-decima.adb: Likewise.
        * libgnat/a-decima.ads: Likewise.
+       * libgnat/a-decima__128.ads: Likewise.
        * libgnat/a-dhfina.adb: Likewise.
        * libgnat/a-dhfina.ads: Likewise.
        * libgnat/a-diocst.adb: Likewise.
        * libgnat/a-excach.adb: Likewise.
        * libgnat/a-except.adb: Likewise.
        * libgnat/a-except.ads: Likewise.
-       * libgnat/a-excpol.adb: Likewise.
-       * libgnat/a-excpol__abort.adb: Likewise.
        * libgnat/a-exctra.adb: Likewise.
        * libgnat/a-exctra.ads: Likewise.
        * libgnat/a-exexda.adb: Likewise.
        * libgnat/a-finali.ads: Likewise.
        * libgnat/a-locale.adb: Likewise.
        * libgnat/a-locale.ads: Likewise.
+       * libgnat/a-nagefl.ads: Likewise.
+       * libgnat/a-naliop.ads: Likewise.
+       * libgnat/a-naliop__nolibm.ads: Likewise.
+       * libgnat/a-nallfl.ads: Likewise.
+       * libgnat/a-nallfl__wraplf.ads: Likewise.
+       * libgnat/a-nalofl.ads: Likewise.
+       * libgnat/a-nashfl.ads: Likewise.
+       * libgnat/a-nashfl__wraplf.ads: Likewise.
        * libgnat/a-nbnbin.adb: Likewise.
        * libgnat/a-nbnbin__gmp.adb: Likewise.
        * libgnat/a-nbnbre.adb: Likewise.
        * libgnat/a-ngelfu.ads: Likewise.
        * libgnat/a-ngrear.adb: Likewise.
        * libgnat/a-ngrear.ads: Likewise.
+       * libgnat/a-nuauco.ads: Likewise.
+       * libgnat/a-nuauco__x86.ads: Likewise.
+       * libgnat/a-nuaufl.ads: Likewise.
+       * libgnat/a-nuaufl__wraplf.ads: Likewise.
        * libgnat/a-nudira.adb: Likewise.
        * libgnat/a-nudira.ads: Likewise.
        * libgnat/a-nuflra.adb: Likewise.
        * libgnat/a-nuflra.ads: Likewise.
        * libgnat/a-numaux.ads: Likewise.
-       * libgnat/a-numaux__darwin.adb: Likewise.
-       * libgnat/a-numaux__darwin.ads: Likewise.
-       * libgnat/a-numaux__libc-x86.ads: Likewise.
-       * libgnat/a-numaux__vxworks.ads: Likewise.
-       * libgnat/a-numaux__x86.adb: Likewise.
-       * libgnat/a-numaux__x86.ads: Likewise.
        * libgnat/a-rbtgbk.adb: Likewise.
        * libgnat/a-rbtgbk.ads: Likewise.
        * libgnat/a-rbtgbo.adb: Likewise.
        * libgnat/a-ssicst.ads: Likewise.
        * libgnat/a-stboha.adb: Likewise.
        * libgnat/a-stmaco.ads: Likewise.
+       * libgnat/a-stobbu.adb: Likewise.
+       * libgnat/a-stobbu.ads: Likewise.
+       * libgnat/a-stobfi.adb: Likewise.
+       * libgnat/a-stobfi.ads: Likewise.
        * libgnat/a-storio.adb: Likewise.
+       * libgnat/a-stoubu.adb: Likewise.
+       * libgnat/a-stoubu.ads: Likewise.
+       * libgnat/a-stoufi.adb: Likewise.
+       * libgnat/a-stoufi.ads: Likewise.
+       * libgnat/a-stoufo.adb: Likewise.
+       * libgnat/a-stoufo.ads: Likewise.
+       * libgnat/a-stouut.adb: Likewise.
+       * libgnat/a-stouut.ads: Likewise.
        * libgnat/a-strbou.adb: Likewise.
        * libgnat/a-strbou.ads: Likewise.
        * libgnat/a-stream.adb: Likewise.
        * libgnat/a-strmap.ads: Likewise.
        * libgnat/a-strsea.adb: Likewise.
        * libgnat/a-strsea.ads: Likewise.
+       * libgnat/a-strsto.ads: Likewise.
        * libgnat/a-strsup.adb: Likewise.
        * libgnat/a-strsup.ads: Likewise.
        * libgnat/a-strunb.adb: Likewise.
        * libgnat/a-strunb.ads: Likewise.
        * libgnat/a-strunb__shared.adb: Likewise.
        * libgnat/a-strunb__shared.ads: Likewise.
+       * libgnat/a-ststbo.adb: Likewise.
+       * libgnat/a-ststbo.ads: Likewise.
        * libgnat/a-ststio.adb: Likewise.
        * libgnat/a-ststio.ads: Likewise.
+       * libgnat/a-ststun.adb: Likewise.
+       * libgnat/a-ststun.ads: Likewise.
+       * libgnat/a-stteou.ads: Likewise.
        * libgnat/a-stunau.adb: Likewise.
        * libgnat/a-stunau.ads: Likewise.
        * libgnat/a-stunau__shared.adb: Likewise.
        * libgnat/a-tideau.ads: Likewise.
        * libgnat/a-tideio.adb: Likewise.
        * libgnat/a-tideio.ads: Likewise.
+       * libgnat/a-tideio__128.adb: Likewise.
        * libgnat/a-tienau.adb: Likewise.
        * libgnat/a-tienau.ads: Likewise.
        * libgnat/a-tienio.adb: Likewise.
+       * libgnat/a-tifiau.adb: Likewise.
+       * libgnat/a-tifiau.ads: Likewise.
        * libgnat/a-tifiio.adb: Likewise.
+       * libgnat/a-tifiio__128.adb: Likewise.
        * libgnat/a-tiflau.adb: Likewise.
        * libgnat/a-tiflau.ads: Likewise.
        * libgnat/a-tiflio.adb: Likewise.
        * libgnat/a-tiinau.ads: Likewise.
        * libgnat/a-tiinio.adb: Likewise.
        * libgnat/a-tiinio.ads: Likewise.
-       * libgnat/a-timoau.adb: Likewise.
-       * libgnat/a-timoau.ads: Likewise.
+       * libgnat/a-tiinio__128.adb: Likewise.
        * libgnat/a-timoio.adb: Likewise.
        * libgnat/a-timoio.ads: Likewise.
+       * libgnat/a-timoio__128.adb: Likewise.
        * libgnat/a-tiocst.adb: Likewise.
        * libgnat/a-tiocst.ads: Likewise.
        * libgnat/a-tirsfi.adb: Likewise.
        * libgnat/a-wtdeau.adb: Likewise.
        * libgnat/a-wtdeau.ads: Likewise.
        * libgnat/a-wtdeio.adb: Likewise.
+       * libgnat/a-wtdeio__128.adb: Likewise.
        * libgnat/a-wtedit.adb: Likewise.
        * libgnat/a-wtedit.ads: Likewise.
        * libgnat/a-wtenau.adb: Likewise.
        * libgnat/a-wtenau.ads: Likewise.
        * libgnat/a-wtenio.adb: Likewise.
+       * libgnat/a-wtfiau.adb: Likewise.
+       * libgnat/a-wtfiau.ads: Likewise.
        * libgnat/a-wtfiio.adb: Likewise.
+       * libgnat/a-wtfiio__128.adb: Likewise.
        * libgnat/a-wtflau.adb: Likewise.
        * libgnat/a-wtflau.ads: Likewise.
        * libgnat/a-wtflio.adb: Likewise.
        * libgnat/a-wtinau.adb: Likewise.
        * libgnat/a-wtinau.ads: Likewise.
        * libgnat/a-wtinio.adb: Likewise.
-       * libgnat/a-wtmoau.adb: Likewise.
-       * libgnat/a-wtmoau.ads: Likewise.
+       * libgnat/a-wtinio__128.adb: Likewise.
        * libgnat/a-wtmoio.adb: Likewise.
        * libgnat/a-wtmoio.ads: Likewise.
+       * libgnat/a-wtmoio__128.adb: Likewise.
        * libgnat/a-wttest.adb: Likewise.
        * libgnat/a-wwboio.adb: Likewise.
        * libgnat/a-zchhan.adb: Likewise.
        * libgnat/a-ztdeau.adb: Likewise.
        * libgnat/a-ztdeau.ads: Likewise.
        * libgnat/a-ztdeio.adb: Likewise.
+       * libgnat/a-ztdeio__128.adb: Likewise.
        * libgnat/a-ztedit.adb: Likewise.
        * libgnat/a-ztedit.ads: Likewise.
        * libgnat/a-ztenau.adb: Likewise.
        * libgnat/a-ztenio.adb: Likewise.
        * libgnat/a-ztexio.adb: Likewise.
        * libgnat/a-ztexio.ads: Likewise.
+       * libgnat/a-ztfiau.adb: Likewise.
+       * libgnat/a-ztfiau.ads: Likewise.
        * libgnat/a-ztfiio.adb: Likewise.
+       * libgnat/a-ztfiio__128.adb: Likewise.
        * libgnat/a-ztflau.adb: Likewise.
        * libgnat/a-ztflau.ads: Likewise.
        * libgnat/a-ztflio.adb: Likewise.
        * libgnat/a-ztinau.adb: Likewise.
        * libgnat/a-ztinau.ads: Likewise.
        * libgnat/a-ztinio.adb: Likewise.
-       * libgnat/a-ztmoau.adb: Likewise.
-       * libgnat/a-ztmoau.ads: Likewise.
+       * libgnat/a-ztinio__128.adb: Likewise.
        * libgnat/a-ztmoio.adb: Likewise.
+       * libgnat/a-ztmoio__128.adb: Likewise.
        * libgnat/a-zttest.adb: Likewise.
        * libgnat/a-zzboio.adb: Likewise.
        * libgnat/g-allein.ads: Likewise.
        * libgnat/g-socket.ads: Likewise.
        * libgnat/g-socket__dummy.adb: Likewise.
        * libgnat/g-socket__dummy.ads: Likewise.
+       * libgnat/g-socpol.adb: Likewise.
+       * libgnat/g-socpol.ads: Likewise.
+       * libgnat/g-socpol__dummy.adb: Likewise.
+       * libgnat/g-socpol__dummy.ads: Likewise.
        * libgnat/g-socthi.adb: Likewise.
        * libgnat/g-socthi.ads: Likewise.
        * libgnat/g-socthi__dummy.adb: Likewise.
        * libgnat/g-soliop__mingw.ads: Likewise.
        * libgnat/g-soliop__qnx.ads: Likewise.
        * libgnat/g-soliop__solaris.ads: Likewise.
+       * libgnat/g-sopowa.adb: Likewise.
+       * libgnat/g-sopowa__mingw.adb: Likewise.
+       * libgnat/g-sopowa__posix.adb: Likewise.
        * libgnat/g-sothco.adb: Likewise.
        * libgnat/g-sothco.ads: Likewise.
        * libgnat/g-sothco__dummy.adb: Likewise.
        * libgnat/g-spipat.ads: Likewise.
        * libgnat/g-spitbo.adb: Likewise.
        * libgnat/g-spitbo.ads: Likewise.
+       * libgnat/g-spogwa.adb: Likewise.
+       * libgnat/g-spogwa.ads: Likewise.
        * libgnat/g-sptabo.ads: Likewise.
        * libgnat/g-sptain.ads: Likewise.
        * libgnat/g-sptavs.ads: Likewise.
        * libgnat/gnat.ads: Likewise.
        * libgnat/i-c.adb: Likewise.
        * libgnat/i-cexten.ads: Likewise.
+       * libgnat/i-cexten__128.ads: Likewise.
        * libgnat/i-cobol.adb: Likewise.
        * libgnat/i-cobol.ads: Likewise.
        * libgnat/i-cpoint.adb: Likewise.
        * libgnat/i-vxwork.ads: Likewise.
        * libgnat/i-vxwork__x86.ads: Likewise.
        * libgnat/interfac.ads: Likewise.
+       * libgnat/interfac__2020.ads: Likewise.
        * libgnat/memtrack.adb: Likewise.
        * libgnat/s-addima.adb: Likewise.
        * libgnat/s-addima.ads: Likewise.
        * libgnat/s-addope.adb: Likewise.
        * libgnat/s-addope.ads: Likewise.
+       * libgnat/s-aoinar.adb: Likewise.
+       * libgnat/s-aoinar.ads: Likewise.
+       * libgnat/s-aomoar.adb: Likewise.
+       * libgnat/s-aomoar.ads: Likewise.
        * libgnat/s-aotase.adb: Likewise.
        * libgnat/s-aotase.ads: Likewise.
+       * libgnat/s-aridou.adb: Likewise.
+       * libgnat/s-aridou.ads: Likewise.
+       * libgnat/s-arit128.adb: Likewise.
+       * libgnat/s-arit128.ads: Likewise.
+       * libgnat/s-arit32.adb: Likewise.
+       * libgnat/s-arit32.ads: Likewise.
        * libgnat/s-arit64.adb: Likewise.
        * libgnat/s-arit64.ads: Likewise.
        * libgnat/s-assert.adb: Likewise.
        * libgnat/s-atocou__builtin.adb: Likewise.
        * libgnat/s-atocou__x86.adb: Likewise.
        * libgnat/s-atoope.ads: Likewise.
-       * libgnat/s-atopar.adb: Likewise.
-       * libgnat/s-atopar.ads: Likewise.
        * libgnat/s-atopex.adb: Likewise.
        * libgnat/s-atopex.ads: Likewise.
        * libgnat/s-atopri.adb: Likewise.
        * libgnat/s-carsi8.ads: Likewise.
        * libgnat/s-carun8.adb: Likewise.
        * libgnat/s-carun8.ads: Likewise.
+       * libgnat/s-casi128.adb: Likewise.
+       * libgnat/s-casi128.ads: Likewise.
        * libgnat/s-casi16.adb: Likewise.
        * libgnat/s-casi16.ads: Likewise.
        * libgnat/s-casi32.adb: Likewise.
        * libgnat/s-casi64.ads: Likewise.
        * libgnat/s-casuti.adb: Likewise.
        * libgnat/s-casuti.ads: Likewise.
+       * libgnat/s-caun128.adb: Likewise.
+       * libgnat/s-caun128.ads: Likewise.
        * libgnat/s-caun16.adb: Likewise.
        * libgnat/s-caun16.ads: Likewise.
        * libgnat/s-caun32.adb: Likewise.
        * libgnat/s-exnllf.ads: Likewise.
        * libgnat/s-exnlli.adb: Likewise.
        * libgnat/s-exnlli.ads: Likewise.
+       * libgnat/s-exnllli.ads: Likewise.
        * libgnat/s-expint.adb: Likewise.
        * libgnat/s-expint.ads: Likewise.
        * libgnat/s-explli.adb: Likewise.
        * libgnat/s-explli.ads: Likewise.
+       * libgnat/s-expllli.ads: Likewise.
+       * libgnat/s-explllu.ads: Likewise.
        * libgnat/s-expllu.adb: Likewise.
        * libgnat/s-expllu.ads: Likewise.
        * libgnat/s-expmod.adb: Likewise.
        * libgnat/s-expmod.ads: Likewise.
+       * libgnat/s-exponn.adb: Likewise.
+       * libgnat/s-exponn.ads: Likewise.
+       * libgnat/s-expont.adb: Likewise.
+       * libgnat/s-expont.ads: Likewise.
+       * libgnat/s-exponu.adb: Likewise.
+       * libgnat/s-exponu.ads: Likewise.
        * libgnat/s-expuns.adb: Likewise.
        * libgnat/s-expuns.ads: Likewise.
        * libgnat/s-fatflt.ads: Likewise.
        * libgnat/s-fatgen.ads: Likewise.
        * libgnat/s-fatlfl.ads: Likewise.
        * libgnat/s-fatllf.ads: Likewise.
-       * libgnat/s-fatsfl.ads: Likewise.
        * libgnat/s-ficobl.ads: Likewise.
        * libgnat/s-filatt.ads: Likewise.
        * libgnat/s-fileio.adb: Likewise.
        * libgnat/s-flocon.adb: Likewise.
        * libgnat/s-flocon.ads: Likewise.
        * libgnat/s-flocon__none.adb: Likewise.
-       * libgnat/s-fore.adb: Likewise.
-       * libgnat/s-fore.ads: Likewise.
+       * libgnat/s-fode128.ads: Likewise.
+       * libgnat/s-fode32.ads: Likewise.
+       * libgnat/s-fode64.ads: Likewise.
+       * libgnat/s-fofi128.ads: Likewise.
+       * libgnat/s-fofi32.ads: Likewise.
+       * libgnat/s-fofi64.ads: Likewise.
+       * libgnat/s-fore_d.adb: Likewise.
+       * libgnat/s-fore_d.ads: Likewise.
+       * libgnat/s-fore_f.adb: Likewise.
+       * libgnat/s-fore_f.ads: Likewise.
+       * libgnat/s-forrea.adb: Likewise.
+       * libgnat/s-forrea.ads: Likewise.
        * libgnat/s-gearop.adb: Likewise.
        * libgnat/s-gearop.ads: Likewise.
        * libgnat/s-genbig.adb: Likewise.
        * libgnat/s-gloloc__mingw.adb: Likewise.
        * libgnat/s-htable.adb: Likewise.
        * libgnat/s-htable.ads: Likewise.
+       * libgnat/s-imageb.adb: Likewise.
+       * libgnat/s-imageb.ads: Likewise.
+       * libgnat/s-imaged.adb: Likewise.
+       * libgnat/s-imaged.ads: Likewise.
+       * libgnat/s-imagef.adb: Likewise.
+       * libgnat/s-imagef.ads: Likewise.
+       * libgnat/s-imagei.adb: Likewise.
+       * libgnat/s-imagei.ads: Likewise.
+       * libgnat/s-imageu.adb: Likewise.
+       * libgnat/s-imageu.ads: Likewise.
+       * libgnat/s-imagew.adb: Likewise.
+       * libgnat/s-imagew.ads: Likewise.
+       * libgnat/s-imde128.ads: Likewise.
+       * libgnat/s-imde32.ads: Likewise.
+       * libgnat/s-imde64.ads: Likewise.
        * libgnat/s-imenne.adb: Likewise.
        * libgnat/s-imenne.ads: Likewise.
+       * libgnat/s-imfi128.ads: Likewise.
+       * libgnat/s-imfi32.ads: Likewise.
+       * libgnat/s-imfi64.ads: Likewise.
        * libgnat/s-imgbiu.adb: Likewise.
        * libgnat/s-imgbiu.ads: Likewise.
        * libgnat/s-imgboo.adb: Likewise.
        * libgnat/s-imgboo.ads: Likewise.
        * libgnat/s-imgcha.adb: Likewise.
        * libgnat/s-imgcha.ads: Likewise.
-       * libgnat/s-imgdec.adb: Likewise.
-       * libgnat/s-imgdec.ads: Likewise.
        * libgnat/s-imgenu.adb: Likewise.
        * libgnat/s-imgenu.ads: Likewise.
        * libgnat/s-imgint.adb: Likewise.
        * libgnat/s-imgint.ads: Likewise.
        * libgnat/s-imgllb.adb: Likewise.
        * libgnat/s-imgllb.ads: Likewise.
-       * libgnat/s-imglld.adb: Likewise.
-       * libgnat/s-imglld.ads: Likewise.
        * libgnat/s-imglli.adb: Likewise.
        * libgnat/s-imglli.ads: Likewise.
+       * libgnat/s-imglllb.ads: Likewise.
+       * libgnat/s-imgllli.ads: Likewise.
+       * libgnat/s-imglllu.ads: Likewise.
+       * libgnat/s-imglllw.ads: Likewise.
        * libgnat/s-imgllu.adb: Likewise.
        * libgnat/s-imgllu.ads: Likewise.
        * libgnat/s-imgllw.adb: Likewise.
        * libgnat/s-imgrea.ads: Likewise.
        * libgnat/s-imguns.adb: Likewise.
        * libgnat/s-imguns.ads: Likewise.
+       * libgnat/s-imguti.adb: Likewise.
+       * libgnat/s-imguti.ads: Likewise.
        * libgnat/s-imgwch.adb: Likewise.
        * libgnat/s-imgwch.ads: Likewise.
        * libgnat/s-imgwiu.adb: Likewise.
        * libgnat/s-pack09.ads: Likewise.
        * libgnat/s-pack10.adb: Likewise.
        * libgnat/s-pack10.ads: Likewise.
+       * libgnat/s-pack100.adb: Likewise.
+       * libgnat/s-pack100.ads: Likewise.
+       * libgnat/s-pack101.adb: Likewise.
+       * libgnat/s-pack101.ads: Likewise.
+       * libgnat/s-pack102.adb: Likewise.
+       * libgnat/s-pack102.ads: Likewise.
+       * libgnat/s-pack103.adb: Likewise.
+       * libgnat/s-pack103.ads: Likewise.
+       * libgnat/s-pack104.adb: Likewise.
+       * libgnat/s-pack104.ads: Likewise.
+       * libgnat/s-pack105.adb: Likewise.
+       * libgnat/s-pack105.ads: Likewise.
+       * libgnat/s-pack106.adb: Likewise.
+       * libgnat/s-pack106.ads: Likewise.
+       * libgnat/s-pack107.adb: Likewise.
+       * libgnat/s-pack107.ads: Likewise.
+       * libgnat/s-pack108.adb: Likewise.
+       * libgnat/s-pack108.ads: Likewise.
+       * libgnat/s-pack109.adb: Likewise.
+       * libgnat/s-pack109.ads: Likewise.
        * libgnat/s-pack11.adb: Likewise.
        * libgnat/s-pack11.ads: Likewise.
+       * libgnat/s-pack110.adb: Likewise.
+       * libgnat/s-pack110.ads: Likewise.
+       * libgnat/s-pack111.adb: Likewise.
+       * libgnat/s-pack111.ads: Likewise.
+       * libgnat/s-pack112.adb: Likewise.
+       * libgnat/s-pack112.ads: Likewise.
+       * libgnat/s-pack113.adb: Likewise.
+       * libgnat/s-pack113.ads: Likewise.
+       * libgnat/s-pack114.adb: Likewise.
+       * libgnat/s-pack114.ads: Likewise.
+       * libgnat/s-pack115.adb: Likewise.
+       * libgnat/s-pack115.ads: Likewise.
+       * libgnat/s-pack116.adb: Likewise.
+       * libgnat/s-pack116.ads: Likewise.
+       * libgnat/s-pack117.adb: Likewise.
+       * libgnat/s-pack117.ads: Likewise.
+       * libgnat/s-pack118.adb: Likewise.
+       * libgnat/s-pack118.ads: Likewise.
+       * libgnat/s-pack119.adb: Likewise.
+       * libgnat/s-pack119.ads: Likewise.
        * libgnat/s-pack12.adb: Likewise.
        * libgnat/s-pack12.ads: Likewise.
+       * libgnat/s-pack120.adb: Likewise.
+       * libgnat/s-pack120.ads: Likewise.
+       * libgnat/s-pack121.adb: Likewise.
+       * libgnat/s-pack121.ads: Likewise.
+       * libgnat/s-pack122.adb: Likewise.
+       * libgnat/s-pack122.ads: Likewise.
+       * libgnat/s-pack123.adb: Likewise.
+       * libgnat/s-pack123.ads: Likewise.
+       * libgnat/s-pack124.adb: Likewise.
+       * libgnat/s-pack124.ads: Likewise.
+       * libgnat/s-pack125.adb: Likewise.
+       * libgnat/s-pack125.ads: Likewise.
+       * libgnat/s-pack126.adb: Likewise.
+       * libgnat/s-pack126.ads: Likewise.
+       * libgnat/s-pack127.adb: Likewise.
+       * libgnat/s-pack127.ads: Likewise.
        * libgnat/s-pack13.adb: Likewise.
        * libgnat/s-pack13.ads: Likewise.
        * libgnat/s-pack14.adb: Likewise.
        * libgnat/s-pack62.ads: Likewise.
        * libgnat/s-pack63.adb: Likewise.
        * libgnat/s-pack63.ads: Likewise.
+       * libgnat/s-pack65.adb: Likewise.
+       * libgnat/s-pack65.ads: Likewise.
+       * libgnat/s-pack66.adb: Likewise.
+       * libgnat/s-pack66.ads: Likewise.
+       * libgnat/s-pack67.adb: Likewise.
+       * libgnat/s-pack67.ads: Likewise.
+       * libgnat/s-pack68.adb: Likewise.
+       * libgnat/s-pack68.ads: Likewise.
+       * libgnat/s-pack69.adb: Likewise.
+       * libgnat/s-pack69.ads: Likewise.
+       * libgnat/s-pack70.adb: Likewise.
+       * libgnat/s-pack70.ads: Likewise.
+       * libgnat/s-pack71.adb: Likewise.
+       * libgnat/s-pack71.ads: Likewise.
+       * libgnat/s-pack72.adb: Likewise.
+       * libgnat/s-pack72.ads: Likewise.
+       * libgnat/s-pack73.adb: Likewise.
+       * libgnat/s-pack73.ads: Likewise.
+       * libgnat/s-pack74.adb: Likewise.
+       * libgnat/s-pack74.ads: Likewise.
+       * libgnat/s-pack75.adb: Likewise.
+       * libgnat/s-pack75.ads: Likewise.
+       * libgnat/s-pack76.adb: Likewise.
+       * libgnat/s-pack76.ads: Likewise.
+       * libgnat/s-pack77.adb: Likewise.
+       * libgnat/s-pack77.ads: Likewise.
+       * libgnat/s-pack78.adb: Likewise.
+       * libgnat/s-pack78.ads: Likewise.
+       * libgnat/s-pack79.adb: Likewise.
+       * libgnat/s-pack79.ads: Likewise.
+       * libgnat/s-pack80.adb: Likewise.
+       * libgnat/s-pack80.ads: Likewise.
+       * libgnat/s-pack81.adb: Likewise.
+       * libgnat/s-pack81.ads: Likewise.
+       * libgnat/s-pack82.adb: Likewise.
+       * libgnat/s-pack82.ads: Likewise.
+       * libgnat/s-pack83.adb: Likewise.
+       * libgnat/s-pack83.ads: Likewise.
+       * libgnat/s-pack84.adb: Likewise.
+       * libgnat/s-pack84.ads: Likewise.
+       * libgnat/s-pack85.adb: Likewise.
+       * libgnat/s-pack85.ads: Likewise.
+       * libgnat/s-pack86.adb: Likewise.
+       * libgnat/s-pack86.ads: Likewise.
+       * libgnat/s-pack87.adb: Likewise.
+       * libgnat/s-pack87.ads: Likewise.
+       * libgnat/s-pack88.adb: Likewise.
+       * libgnat/s-pack88.ads: Likewise.
+       * libgnat/s-pack89.adb: Likewise.
+       * libgnat/s-pack89.ads: Likewise.
+       * libgnat/s-pack90.adb: Likewise.
+       * libgnat/s-pack90.ads: Likewise.
+       * libgnat/s-pack91.adb: Likewise.
+       * libgnat/s-pack91.ads: Likewise.
+       * libgnat/s-pack92.adb: Likewise.
+       * libgnat/s-pack92.ads: Likewise.
+       * libgnat/s-pack93.adb: Likewise.
+       * libgnat/s-pack93.ads: Likewise.
+       * libgnat/s-pack94.adb: Likewise.
+       * libgnat/s-pack94.ads: Likewise.
+       * libgnat/s-pack95.adb: Likewise.
+       * libgnat/s-pack95.ads: Likewise.
+       * libgnat/s-pack96.adb: Likewise.
+       * libgnat/s-pack96.ads: Likewise.
+       * libgnat/s-pack97.adb: Likewise.
+       * libgnat/s-pack97.ads: Likewise.
+       * libgnat/s-pack98.adb: Likewise.
+       * libgnat/s-pack98.ads: Likewise.
+       * libgnat/s-pack99.adb: Likewise.
+       * libgnat/s-pack99.ads: Likewise.
        * libgnat/s-parame.adb: Likewise.
        * libgnat/s-parame.ads: Likewise.
        * libgnat/s-parame__ae653.ads: Likewise.
        * libgnat/s-pooloc.ads: Likewise.
        * libgnat/s-poosiz.adb: Likewise.
        * libgnat/s-poosiz.ads: Likewise.
-       * libgnat/s-powtab.ads: Likewise.
+       * libgnat/s-powflt.ads: Likewise.
+       * libgnat/s-powlfl.ads: Likewise.
+       * libgnat/s-powllf.ads: Likewise.
        * libgnat/s-purexc.ads: Likewise.
+       * libgnat/s-putaim.adb: Likewise.
+       * libgnat/s-putaim.ads: Likewise.
+       * libgnat/s-putima.adb: Likewise.
+       * libgnat/s-putima.ads: Likewise.
        * libgnat/s-rannum.adb: Likewise.
        * libgnat/s-rannum.ads: Likewise.
        * libgnat/s-ransee.adb: Likewise.
        * libgnat/s-rpc.ads: Likewise.
        * libgnat/s-scaval.adb: Likewise.
        * libgnat/s-scaval.ads: Likewise.
+       * libgnat/s-scaval__128.adb: Likewise.
+       * libgnat/s-scaval__128.ads: Likewise.
        * libgnat/s-secsta.adb: Likewise.
        * libgnat/s-secsta.ads: Likewise.
        * libgnat/s-sequio.adb: Likewise.
        * libgnat/s-sequio.ads: Likewise.
+       * libgnat/s-shabig.ads: Likewise.
        * libgnat/s-shasto.adb: Likewise.
        * libgnat/s-shasto.ads: Likewise.
        * libgnat/s-soflin.adb: Likewise.
        * libgnat/s-stache.ads: Likewise.
        * libgnat/s-stalib.adb: Likewise.
        * libgnat/s-stalib.ads: Likewise.
+       * libgnat/s-statxd.adb: Likewise.
+       * libgnat/s-statxd.ads: Likewise.
        * libgnat/s-stausa.adb: Likewise.
        * libgnat/s-stausa.ads: Likewise.
        * libgnat/s-stchop.adb: Likewise.
        * libgnat/s-stposu.ads: Likewise.
        * libgnat/s-stratt.adb: Likewise.
        * libgnat/s-stratt.ads: Likewise.
-       * libgnat/s-stratt__xdr.adb: Likewise.
        * libgnat/s-strcom.adb: Likewise.
        * libgnat/s-strcom.ads: Likewise.
        * libgnat/s-strhas.adb: Likewise.
        * libgnat/s-unstyp.ads: Likewise.
        * libgnat/s-utf_32.adb: Likewise.
        * libgnat/s-utf_32.ads: Likewise.
+       * libgnat/s-vade128.ads: Likewise.
+       * libgnat/s-vade32.ads: Likewise.
+       * libgnat/s-vade64.ads: Likewise.
+       * libgnat/s-vafi128.ads: Likewise.
+       * libgnat/s-vafi32.ads: Likewise.
+       * libgnat/s-vafi64.ads: Likewise.
        * libgnat/s-valboo.adb: Likewise.
        * libgnat/s-valboo.ads: Likewise.
        * libgnat/s-valcha.adb: Likewise.
        * libgnat/s-valcha.ads: Likewise.
-       * libgnat/s-valdec.adb: Likewise.
-       * libgnat/s-valdec.ads: Likewise.
        * libgnat/s-valenu.adb: Likewise.
        * libgnat/s-valenu.ads: Likewise.
+       * libgnat/s-valflt.ads: Likewise.
        * libgnat/s-valint.adb: Likewise.
        * libgnat/s-valint.ads: Likewise.
-       * libgnat/s-vallld.adb: Likewise.
-       * libgnat/s-vallld.ads: Likewise.
+       * libgnat/s-vallfl.ads: Likewise.
+       * libgnat/s-valllf.ads: Likewise.
        * libgnat/s-vallli.adb: Likewise.
        * libgnat/s-vallli.ads: Likewise.
+       * libgnat/s-valllli.ads: Likewise.
+       * libgnat/s-vallllu.ads: Likewise.
        * libgnat/s-valllu.adb: Likewise.
        * libgnat/s-valllu.ads: Likewise.
        * libgnat/s-valrea.adb: Likewise.
        * libgnat/s-valrea.ads: Likewise.
+       * libgnat/s-valued.adb: Likewise.
+       * libgnat/s-valued.ads: Likewise.
+       * libgnat/s-valuef.adb: Likewise.
+       * libgnat/s-valuef.ads: Likewise.
+       * libgnat/s-valuei.adb: Likewise.
+       * libgnat/s-valuei.ads: Likewise.
+       * libgnat/s-valuer.adb: Likewise.
+       * libgnat/s-valuer.ads: Likewise.
+       * libgnat/s-valueu.adb: Likewise.
+       * libgnat/s-valueu.ads: Likewise.
        * libgnat/s-valuns.adb: Likewise.
        * libgnat/s-valuns.ads: Likewise.
        * libgnat/s-valuti.adb: Likewise.
        * libgnat/s-widcha.ads: Likewise.
        * libgnat/s-widenu.adb: Likewise.
        * libgnat/s-widenu.ads: Likewise.
+       * libgnat/s-widint.ads: Likewise.
        * libgnat/s-widlli.adb: Likewise.
        * libgnat/s-widlli.ads: Likewise.
+       * libgnat/s-widllli.ads: Likewise.
+       * libgnat/s-widlllu.ads: Likewise.
        * libgnat/s-widllu.adb: Likewise.
        * libgnat/s-widllu.ads: Likewise.
+       * libgnat/s-widthi.adb: Likewise.
+       * libgnat/s-widthi.ads: Likewise.
+       * libgnat/s-widthu.adb: Likewise.
+       * libgnat/s-widthu.ads: Likewise.
+       * libgnat/s-widuns.ads: Likewise.
        * libgnat/s-widwch.adb: Likewise.
        * libgnat/s-widwch.ads: Likewise.
        * libgnat/s-win32.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.
-       * libgnat/system.ads: Likewise.
        * link.c: Likewise.
        * live.adb: Likewise.
        * live.ads: Likewise.
        * sinput-l.ads: Likewise.
        * sinput.adb: Likewise.
        * sinput.ads: Likewise.
+       * snames.adb-tmpl: Likewise.
+       * snames.ads-tmpl: Likewise.
        * socket.c: Likewise.
        * spark_xrefs.adb: Likewise.
        * spark_xrefs.ads: Likewise.
        * sprint.adb: Likewise.
        * sprint.ads: Likewise.
-       * stand.adb: Likewise.
        * stand.ads: Likewise.
        * stringt.adb: Likewise.
        * stringt.ads: Likewise.
        * switch-m.ads: Likewise.
        * switch.adb: Likewise.
        * switch.ads: Likewise.
-       * symbols.adb: Likewise.
-       * symbols.ads: Likewise.
        * sysdep.c: Likewise.
        * table.adb: Likewise.
        * table.ads: Likewise.
        * tempdir.ads: Likewise.
        * terminals.c: Likewise.
        * tracebak.c: Likewise.
-       * tree_gen.adb: Likewise.
-       * tree_gen.ads: Likewise.
-       * tree_in.adb: Likewise.
-       * tree_in.ads: Likewise.
-       * tree_io.adb: Likewise.
-       * tree_io.ads: Likewise.
        * treepr.adb: Likewise.
        * treepr.ads: Likewise.
        * ttypes.ads: Likewise.
        * usage.ads: Likewise.
        * validsw.adb: Likewise.
        * validsw.ads: Likewise.
+       * vast.adb: Likewise.
+       * vast.ads: Likewise.
        * warnsw.adb: Likewise.
        * warnsw.ads: Likewise.
        * widechar.adb: Likewise.
        * xutil.adb: Likewise.
        * xutil.ads: Likewise.
 
-2020-06-02  Javier Miranda  <miranda@adacore.com>
-
-       * sem_ch3.adb (Analyze_Object_Declaration): Set attribute
-       Expansion_Delayed on aggregates that initialize an object that
-       has aspect alignment or address clause. Done to allow ther
-       initialization by means of multiple assignments.
-       * exp_ch3.adb (Expand_N_Object_Declaration): Resolve delayed
-       aggregates. This patch complements the patch applied to
-       sem_ch3.adb
-
-2020-06-02  Javier Miranda  <miranda@adacore.com>
-
-       * sem_util.adb (Ensure_Minimum_Decoration): New subprogram that
-       ensures the minimum decoration required by
-       Requires_Transient_Scope() to provide its functionality when the
-       entity is not frozen.
-
-2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_ch4.adb (Expand_N_Op_Divide): Remove code dealing with
-       the Treat_Fixed_As_Integer flag.
-       (Expand_N_Op_Multiply): Likewise.
-       * exp_fixd.adb (Build_Divide): Do the division in an integer
-       type long enough to hold both operands and convert the result
-       to the type of the LHS.  Do not set Treat_Fixed_As_Integer.
-       (Build_Multiply): Do not set Treat_Fixed_As_Integer.
-       (Build_Rem): Likewise.
-       * sem_ch4.adb (Analyze_Arithmetic_Op): Remove code dealing with
-       the Treat_Fixed_As_Integer flag.
-       (Check_Arithmetic_Pair): Likewise.
-       * sinfo.ads (Treat_Fixed_As_Integer): Delete.
-       (N_Has_Treat_Fixed_As_Integer): Likewise.
-       (Set_Treat_Fixed_As_Integer): Likewise.
-       * sinfo.adb (Treat_Fixed_As_Integer): Likewise.
-       (Set_Treat_Fixed_As_Integer): Likewise.
-       * sprint.ads (Syntax Extensions): Remove '#' special character.
-       * sprint.adb (Process_TFAI_RR_Flags): Delete.
-       (Sprint_Node_Actual) <N_Op_Divide>: Print '@' manually.
-       <N_Op_Multiply>: Likewise.
-       <N_Op_Mod>: Do not print '#'.
-       <N_Op_Rem>: Likewise.
-
-2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_aggr.adb (Others_Check): In the positional case, use the
-       general expression for the comparison only when needed.
-       * exp_attr.adb (Expand_Fpt_Attribute;): Use a simple conversion
-       to the target type instead of an unchecked conversion to the
-       base type to do the range check, as in the other cases.
-       (Expand_N_Attribute_Reference) <Attribute_Storage_Size>: Do the
-       Max operation in the type of the storage size variable, and use
-       Convert_To as in the other cases.
-       * tbuild.adb (Convert_To): Do not get rid of an intermediate
-       conversion to Universal_Integer here...
-       * sem_res.adb  (Simplify_Type_Conversion): ...but here instead.
-
-2020-06-02  Bob Duff  <duff@adacore.com>
-
-       * doc/gnat_ugn/gnat_utility_programs.rst: Update documentation
-       for --RM-style-spacing.
-
-2020-06-02  Bob Duff  <duff@adacore.com>
-
-       * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
-       --[no-]compact switch.
-
-2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_aggr.adb (Build_Array_Aggr_Code): Set the type of the PAT
-       on the zero used to clear the array.
-       * exp_attr.adb (Expand_N_Attribute_Reference)
-       <Attribute_Alignment>: In the CW case, directly convert from the
-       alignment's type to the target type if the parent is an
-       unchecked conversion.
-       * sem_res.adb (Set_String_Literal_Subtype): In the dynamic case,
-       use the general expression for the upper bound only when needed.
-       Set the base type of the index as the type of the low bound.
-       (Simplify_Type_Conversion): Do an intermediate conversion to the
-       root type of the target type if the operand is an integer
-       literal.
-       * tbuild.adb (Convert_To): Get rid of an intermediate conversion
-       to Universal_Integer if the inner expression has integer tyoe.
-       * libgnat/a-sequio.adb (Byte_Swap): Make use of an equivalent
-       static expression in the case statement.
-
-2020-06-02  Thomas Quinot  <quinot@adacore.com>
-
-       * par_sco.adb (Traverse_Degenerate_Subprogram): Set statement
-       code to 'X'.
-       * scos.ads: Update comment documenting SCO data.
-
-2020-06-02  Gary Dismukes  <dismukes@adacore.com>
-
-       * exp_unst.adb (Register_Subprogram): Test for Address_Taken (in
-       addition to the existing test for In_Synchonized_Unit) when
-       deciding whether to reset the Reachable flag on all subprograms
-       enclosing the subprogram being registered.
-
-2020-06-02  Justin Squirek  <squirek@adacore.com>
-
-       * sem_ch6.adb (Check_Return_Obj_Accessibility): Avoid use of
-       parent node pointers so we are not relying on expansion done in
-       GNATprove mode.
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+       * exp_dist.adb (Build_From_Any_Call): Remove initial value for
+       Fnam; fix style.
+       (Build_To_Any_Call): Remove initial value for Fnam.
+       (Build_TypeCode_Call): Likewise.
 
-       * exp_attr.adb (Expand_N_Attribute_Reference)
-       <Attribute_Alignment>: Adjust comment and compare against proper
-       type.
-
-2020-06-02  Gary Dismukes  <dismukes@adacore.com>
-
-       * exp_unst.adb (Visit_Node): When visiting array attribute
-       nodes, apply Get_Referenced_Object to the attribute prefix, to
-       handle prefixes denoting renamed objects by picking up the Etype
-       of the renamed object rather than the possibly unconstrained
-       nominal subtype of the renaming declaration's Entity.
-       * sem_util.ads (Get_Referenced_Object): Update comment to
-       clearly indicate that any kind of node can be passed to this
-       function.
-       * sem_util.adb (Get_Referenced_Object): Add test of Is_Object to
-       the condition, to allow for passing names that denote types and
-       subtypes.
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+
+       * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb,
+       exp_disp.adb, exp_imgv.adb, exp_util.adb, sem_attr.adb,
+       sem_ch13.adb, sem_ch8.adb, sem_eval.adb, sem_scil.adb,
+       sem_util.adb: Replace calls to RTE with Is_RTE.
+
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch4.adb (Try_Object_Operation): Reuse local constant.
+
+2021-05-03  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch4.adb (Try_Object_Operation): When a prefixed call is
+       overloaded and illegal, and the All_Errors flag is off, generate
+       an error message if the re-analysis of some candidate
+       interpretation fails to produce one.
+
+2021-05-03  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * libgnat/g-casuti.adb: Replace with "pragma No_Body".
+       * libgnat/g-casuti.ads: Replace with a package renaming.
+
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_attr.adb (Check_Program_Unit): Fix references to
+       Concurrent_Kind and Is_Concurrent_Type; avoid repeated calls to
+       Entity.
+
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_attr.adb (Check_Program_Unit): Replace tests for Task_Kind
+       and Protected_Kind with a collective test for Concurrent_Kind;
+       likewise, replace calls to Is_Task_Type and Is_Protected_Type
+       with a collective call to Is_Concurrent_Type; simplify into a
+       single membership test; add missing Entry_Kind alternative.
+
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb (Resolve_Record_Aggregate): Fix casing in error
+       message.
+       * sem_ch3.adb (Add_Internal_Interface_Entities): Fix unbalanced
+       parens.
+       * sem_elim.adb (Eliminate_Error_Msg): Add insertion character.
 
-2020-06-02  Bob Duff  <duff@adacore.com>
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
 
-       * snames.ads-tmpl: Add comments explaining that enumeration
-       types have to be kept in synch with subtypes of Name_Id.
+       * freeze.adb (Freeze_Profile): Replace Error_Msg_NE with
+       Error_Msg_N; change to continuation message.
+       * sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch5.adb: Replace
+       calls to Error_Msg_NE with calls to Error_Msg_N.
 
-2020-06-02  Piotr Trojanek  <trojanek@adacore.com>
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_util.adb (Check_No_Hidden_State): Remove dead code.
+       * exp_disp.adb, sem_aggr.adb, sem_cat.adb, sem_ch10.adb,
+       sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
+       sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_prag.adb,
+       sem_res.adb: Remove extra leading and trailing space in error
+       messages.
 
-2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+2021-05-03  Arnaud Charlet  <charlet@adacore.com>
 
-       * exp_pakd.adb (Expand_Packed_Bit_Reference): Change type of
-       reference from Universal_Integer to Standard_Natural.
+       * sem_prag.adb (Set_Exported): Do not warn on exporting a type.
 
-2020-06-02  Piotr Trojanek  <trojanek@adacore.com>
+2021-05-03  Ed Schonberg  <schonberg@adacore.com>
 
-       * sem_prag.adb (Collect_States_And_Objects): Call itself on
-       declaration of nested packages; append abstract states
-       one-by-one, so that in recursive call we do not overwrite the
-       ones that have been already collected.
+       * sem_warn.adb (Check_References): Do not emit warning on a
+       selected component when enclosing type has no discriminant and
+       type of component has partial initialization.
 
-2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+2021-05-03  Justin Squirek  <squirek@adacore.com>
 
-       * exp_atag.ads (Build_Inherit_Predefined_Prims): Change type
-       of Num_Predef_Prim parameter from Int to Nat.
-       * exp_atag.adb (Build_Range): New procedure.
-       (Build_Val): Likewise.
-       (Build_CW_Membership): Call Build_Val.
-       (Build_Get_Predefined_Prim_Op_Address): Likewise.
-       (Build_Inherit_CPP_Prims): Likewise.
-       (Build_Get_Prim_Op_Address): Likewise.
-       (Build_Set_Predefined_Prim_Op_Address): Likewise.
-       (Build_Inherit_Prims): Call Build_Range.
-       (Build_Inherit_Predefined_Prims): Likewise.  Change type of
-       Num_Predef_Prim parameter from Int to Nat.
+       * contracts.adb (Build_Postconditions_Procedure): Remove
+       internally generated if statement used to control finalization
+       actions.
+       * exp_ch6.adb (Add_Return, Expand_Non_Function_Return,
+       Expand_Simple_Function_Return): Add if statement around
+       _postconditions to control finalization.
+       * exp_ch7.adb (Build_Finalizer): Likewise.
+       * sem_prag.adb (Find_Related_Declaration_Or_Body): Add case to
+       handle Context itself being a handled sequence of statements.
 
-2020-06-02  Gary Dismukes  <dismukes@adacore.com>
+2021-05-03  Justin Squirek  <squirek@adacore.com>
 
-       * sem_ch3.adb: Two typo fixes.
+       * sem_util.adb (In_Return_Value): Modified to detect when
+       implicit dereference is specified on the return type of a
+       function call within the expression being checked.
 
-2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+2021-05-03  Ed Schonberg  <schonberg@adacore.com>
 
-       * sem_ch3.adb (Replace_Discriminants): Preserve the Etype of the
-       Name of N_Variant_Part nodes when rewriting it.
+       * exp_aggr.adb (Expand_Array_Aggregate): If the parent node of
+       the aggregate is a subprogram call there is no target in which
+       to build the aggregate, and it has to be expanded into component
+       assignments.
 
-2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_ch3.adb (Signed_Integer_Type_Declaration): Change the type
-       of the bounds from Universal_Integer to Implicit_Base.
+       * exp_prag.adb (Expand_Pragma_CUDA_Execute): Refill comments;
+       remove periods after single-line comments; use procedural
+       variant of Next_Entity.
+       * gnat_cuda.adb: Refill comments; remove periods after
+       single-line comments; replace calls to UI_From_Int with
+       constants; change iteration bounds so they match the comments.
+       * sem_prag.adb (Analyze_Pragma): Add checks for malformed pragma
+       CUDA_Kernel aggregate; simplify processing of pragma CUDA_Global
+       with Check_Arg_Count; sync comment with code for CUDA_Global.
 
-2020-06-02  Arnaud Charlet  <charlet@adacore.com>
+2021-05-03  Arnaud Charlet  <charlet@adacore.com>
 
-       * bcheck.adb, binde.adb, bindo-diagnostics.adb, checks.adb,
-       exp_aggr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,
-       exp_ch9.adb, gnatname.adb, sem_case.adb, sem_ch13.adb,
-       sem_ch5.adb, sem_prag.adb, sem_util.adb, uintp.adb, urealp.adb,
-       xoscons.adb, xr_tabls.adb, xref_lib.adb: Initialize objects more
-       explicitly and add corresponding assertions. Remove dead code.
-       Also add a few Annotate pragmas to help static analysis.
-       * libgnat/a-caldel.adb, libgnat/a-calend.adb,
-       libgnat/a-ngcoty.adb, libgnat/a-ngelfu.adb,
-       libgnat/a-ngrear.adb, libgnat/a-strfix.adb,
-       libgnat/g-calend.adb, libgnat/g-catiio.adb,
-       libgnat/g-comlin.adb, libgnat/g-debpoo.adb,
-       libgnat/g-dirope.adb, libgnat/g-hesorg.adb,
-       libgnat/g-pehage.adb, libgnat/g-socket.adb, libgnat/i-cobol.adb,
-       libgnat/s-dwalin.adb, libgnat/s-dwalin.ads,
-       libgnat/s-fatgen.adb, libgnat/s-gearop.adb,
-       libgnat/s-genbig.adb, libgnat/s-imgrea.adb,
-       libgnat/s-os_lib.adb, libgnat/s-rannum.adb,
-       libgnat/s-regpat.adb, libgnat/s-trasym__dwarf.adb,
-       libgnat/s-valrea.adb: Ditto.
+       * tbuild.adb (Make_Implicit_Loop_Statement): Disable restriction
+       checking on dead paths.
 
-2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+2021-05-03  Arnaud Charlet  <charlet@adacore.com>
 
-       * sem_ch3.adb (Replace_Components): Rename into...
-       (Replace_Discriminants): ...this.  Replace girder discriminants
-       with non-girder ones.  Do not replace components.
-       * sem_ch13.adb (Check_Record_Representation_Clause): Deal with
-       non-girder discriminants correctly.
+       * sem_util.adb (Check_Result_And_Post_State): Replace custom
+       Has_In_Out_Parameter with existing Has_Out_Or_In_Out_Parameter
+       flag which corresponds exactly to what we need.
 
-2020-06-02  Piotr Trojanek  <trojanek@adacore.com>
+2021-05-03  Arnaud Charlet  <charlet@adacore.com>
 
-       * lib-xref-spark_specific.adb (Create_Heap): use a new variant
-       of Name_Enter to directly converts String to Make_Id.
+       * libgnat/a-ztcoio.adb: Remove unused with clause.
 
-2020-06-02  Gary Dismukes  <dismukes@adacore.com>
+2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
 
-       * exp_attr.adb, par-ch4.adb, par-util.adb, scans.ads, scng.adb,
-       sem_attr.adb, sem_ch4.adb, sinfo.ads: Typo corrections and minor
-       reformatting.
+       * sem_ch13.adb (Build_Predicate_Functions): Fix typo in comment.
+       (Resolve_Aspect_Expressions): Fix typo in comment; remove
+       redundant check for no aspects; simplify with Discard_Node.
 
-2020-06-02  Arnaud Charlet  <charlet@adacore.com>
+2021-05-03  Ed Schonberg  <schonberg@adacore.com>
 
-       * snames.ads-tmpl (Name_Img, Attribute_Img): Make it an
-       attribute returning renamable functions.
+       * sem_util.adb (Build_Constrained_Itype): Remove prior patch,
+       issue is better handled in Sem_Ch13.Build_Predicate_Functions.
+       * sem_ch13.adb (Build_Predicate_Functions): Do not build
+       predicate function for an Itype with a defined
+       Predicated_Parent, even if that designated parent does not yet
+       have a Predicate_Function. This can happen in instance bodies
+       nested within a generic unit.
 
-2020-06-02  Yannick Moy  <moy@adacore.com>
+2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * sem_prag.adb, sem_prag.ads (Set_Overflow_Mode): New procedure
-       to set overflow mode.
+       * exp_attr.adb (Expand_N_Attribute_Reference)
+       <Attribute_Max_Size_In_Storage_Elements>: Apply the checks for
+       universal integer contexts only in the default case.
+       * exp_ch4.adb (Get_Size_For_Range): Move to library level.
+       (Expand_N_Type_Conversion): If the operand has Universal_Integer
+       type and the conversion requires an overflow check, try to do an
+       intermediate conversion to a narrower type.
+
+2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch3.adb (Check_Anonymous_Access_Component): Factor out
+       core processing of Check_Anonymous_Access_Components.
+       (Check_Anonymous_Access_Components): Call
+       Check_Anonymous_Access_Component.
+       (Process_Discriminants): Call Check_Anonymous_Access_Component.
+       * freeze.adb (Freeze_Record_Type): Code cleanups and add more tree
+       checking to handle changes in sem_ch3.adb.
+       * sem_ch8.adb (Find_Type): Remove special case for access
+       discriminant in task types, these are now supported.
+
+2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): Remove
+       entry condition.
+       (Expand_N_In): Call Minimized_Eliminated_Overflow_Check on the left
+       operand before doing the special overflow expansion.
+       (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_Ne): Likewise.
+       (Minimized_Eliminated_Overflow_Check): Return False for Minimized
+       if the size of the type is greater than that of Long_Long_Integer.
+
+2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch5.adb (Expand_N_If_Statement): Only perform the
+       simplification on return True/False for internal nodes when
+       -fpreserve-control-flow is not set.
+
+2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_attr.adb (Eval_Attribute) <Attribute_Machine>: Use
+       Round_Even instead of Round in the call to the Machine routine.
+
+2021-04-29  Bob Duff  <duff@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute): Change "$" to "&".
+       Otherwise, Errout will trip over an uninitialized (invalid)
+       variable (Error_Msg_Unit_1).
+
+2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-valuer.adb (Scan_Decimal_Digits): Set Extra to zero
+       when the precision limit is reached by means of trailing zeros
+       and prevent it from being overwritten later.
+
+2021-04-29  Yannick Moy  <moy@adacore.com>
+
+       * errout.adb (Output_Messages): Insert SGR strings where needed.
+       * erroutc.adb (Output_Message_Txt): Insert SGR strings where
+       needed in the text of the message itself.
+       (Output_Msg_Text): Allow for style message not to start
+       with (style).
+       * erroutc.ads: Add new constants and functions to control colors
+       in messages output to the terminal. Add variable Use_SGR_Control
+       that should be set to True for using SGR color control strings.
+
+2021-04-29  Yannick Moy  <moy@adacore.com>
+
+       * sem_eval.adb (Check_Non_Static_Context_For_Overflow): Apply
+       compile-time checking for overflows in non-static contexts
+       including inlined code.
+       (Eval_Arithmetic_Op): Use the new procedure.
+       (Eval_Unary_Op, Eval_Op_Expon): Add call to the new procedure.
+
+2021-04-29  Justin Squirek  <squirek@adacore.com>
+
+       * checks.adb (Apply_Type_Conversion_Checks): Move out constraint
+       check generation, and add case for general access types with
+       constraints.
+       (Make_Discriminant_Constraint_Check): Created to centralize
+       generation of constraint checks for stored discriminants.
+
+2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gnat1drv.adb (Adjust_Global_Switches): Force a 32-bit Duration
+       type if the maximum integer size is lower than 64 bits.
+
+2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+
+       * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove unused files.
+       (ADA_INCLUDE_SRCS): Remove libgnat/system.ads
+
+2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_aggr.adb (Collect_Initialization_Statements): Removed.
+       (Convert_Aggr_In_Object_Decl, Expand_Array_Aggregate): Fix
+       creation and insertion of Initialization_Statements.  Do not set
+       Initialization_Statements when a transient scope is involved.
+       Move processing of Array_Slice here.  Ensure that an object with
+       an Array_Slice call gets its array component initialized.  Add
+       comments.
+       * exp_ch7.adb: Update comments.
+       (Store_Actions_In_Scope): Deal properly with an empty list which
+       might now be generated by Convert_Aggr_In_Object_Decl.
+       * exp_ch3.adb: Update comments.
+       (Expand_N_Object_Declaration): Remove processing of Array_Slice.
+
+2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch8.adb (Analyze_Object_Renaming): Update check for
+       AI12-0401.
 
-2020-06-02  Piotr Trojanek  <trojanek@adacore.com>
+2021-04-29  Patrick Bernardi  <bernardi@adacore.com>
 
-       * contracts.adb, einfo.adb, exp_ch9.adb, sem_ch12.adb,
-       sem_ch4.adb, sem_ch7.adb, sem_ch8.adb, sem_elab.adb,
-       sem_type.adb, sem_util.adb: Reuse Is_Package_Or_Generic_Package
-       where possible (similarly, reuse Is_Concurrent_Type if it was
-       possible in the same expressions).
+       * libgnat/s-stoele.ads (Storage_Offset): Cleanup comment.
 
-2020-05-30  Arnaud Charlet  <charlet@adacore.com>
+2021-04-29  Gary Dismukes  <dismukes@adacore.com>
 
-       * Makefile.rtl (ADA_INCLUDE_SRCS): Replace Makefile.adalib by
-       libada.gpr and associated project files.
-       (g-debpoo.o): Add missing rule to ensure subprograms are not reordered.
-       (setup-rts): Add generation of libgnat/libgnarl.lst.
-       (LIBGNAT_SRCS): Remove thread.c which is part of libgnarl.
-       * tracebak.c, tb-gcc.c: Merged the two files to simplify dependencies.
-       * libgnarl/libgnarl.gpr, libgnat/libada.gpr,
-       libgnat/libgnat.gpr, libgnat/libgnat_common.gpr: New files.
-       * doc/gnat_ugn/the_gnat_compilation_model.rst: Makefile.adalib
-       replaced by libada.gpr.
-       * libgnat/system-mingw.ads: Remove obsolete comment.
-       * gcc-interface/Makefile.in: Remove dependency on tb-gcc.c.
+       * exp_util.adb (Add_Own_DIC): Relax the suppression of adding a
+       DIC Check pragma that's done for abstract types by still doing
+       it in the case where GNATprove_Mode is set.
 
-2020-05-27  Martin Liska  <mliska@suse.cz>
+2021-04-29  Joel Brobecker  <brobecker@adacore.com>
 
-       * gnatvsn.ads: Bump Library_Version to 11.
+       * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove s-gcc.adb, s-gcc.ads,
+       s-gccdiv.adb, s-gccdiv.ads, s-gccshi.adb and s-gccshi.ads.
 
-2020-05-26  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
 
-       PR ada/95333
-       * gcc-interface/decl.c (gnat_to_gnu_param): Never make a variant of
-       the type.
+       * layout.adb (Layout_Type): Refine type of a local variable with
+       the required size of object from Int to Pos (it is initialized
+       with 8 and only multiplied by 2); fix unbalanced parens in
+       comment.
+
+2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
 
-2020-05-26  Alexandre Oliva  <oliva@adacore.com>
+       * eval_fat.adb (Succ): Use Ureal_Half in a couple of places.
 
-       * gcc-interface/lang-specs.h (ADA_DUMPS_OPTIONS): Define in
-       terms of DUMPS_OPTIONS.  Replace occurrences of %{d*} %:dumps
-       with it.
+2021-04-29  Ed Schonberg  <schonberg@adacore.com>
 
-2020-05-26  Alexandre Oliva  <oliva@adacore.com>
+       * sem_util.adb (Build_Constrained_Itype): Inhibit the generation
+       of predicate functions for this Itype, which is created for an
+       aggregate of a discriminated type. The object to which the
+       aggregate is assigned, e.g a writable actual parameter, will
+       apply the predicates if any are inherited from the base type.
 
-       * gcc-interface/lang-specs.h: Drop auxbase and auxbase-strip.
-       Use %:dumps instead of -dumpbase.  Add %w for implicit .s
-       primary output.
-       * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
-       dumpbase-ext.  Drop auxbase and auxbase-strip.
+2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
 
-2020-05-25  Yannick Moy  <moy@adacore.com>
+       * sem_cat.adb (Set_Categorization_From_Pragmas): Remove special
+       case for generic child units; remove optimization for empty list
+       of pragmas; properly restore visibility.
 
-       * sem_util.adb (Check_No_Hidden_State): Stop propagation at
-       first block/task/entry.
+2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_elab.adb (Process_SPARK_Instantiation): Fix typo in
+       comment.
+       * sem_prag.adb (Find_Related_Context): Add missing reference to
+       No_Caching in the comment; handle pragmas on compilation units.
 
-2020-05-25  Yannick Moy  <moy@adacore.com>
+2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
 
-       * doc/gnat_rm/implementation_defined_pragmas.rst: Document
-       changes to pragmas Compile_Time_Error/Compile_Time_Warning.
+       * doc/gnat_rm/implementation_defined_attributes.rst: Change all
+       occurrences of "permissible prefix" to "allowed prefix", for
+       consistency.
        * gnat_rm.texi: Regenerate.
-       * libgnat/g-bytswa.adb: Change uses of Compile_Time_Error to
-       Compile_Time_Warning, as the actual expression may not always be
-       known statically.
-       * sem_prag.adb (Analyze_Pragma): Handle differently pragma
-       Compile_Time_Error in both compilation and in GNATprove mode.
-       (Validate_Compile_Time_Warning_Or_Error): Issue an error or
-       warning when the expression is not known at compile time.
-       * usage.adb: Add missing documentation for warning switches _c
-       and _r.
-       * warnsw.ads: Update comment.
-
-2020-05-25  Justin Squirek  <squirek@adacore.com>
-
-       * sem_ch6.adb (Check_Return_Obj_Accessibility): Use original
-       node to avoid looking at expansion done in GNATprove mode.
-
-2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/decl.c (gnat_to_gnu_entity): Add new local variable
-       and use it throughout the function.
-       <E_Variable>: Rename local variable and adjust accordingly.  In the
-       case of a renaming, materialize the entity if the renamed object is
-       an N_Expression_With_Actions node.
-       <E_Procedure>: Use Alias accessor function consistently.
-
-2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/misc.c (get_array_bit_stride): Get to the debug type,
-       if any, before calling gnat_get_array_descr_info.
-
-2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Tidy up.
-       (build_variant_list): Add GNAT_VARIANT_PART parameter and annotate its
-       variants if it is present.  Adjust the recursive call by passing the
-       variant subpart of variants, if any.
-       (copy_and_substitute_in_layout): Rename GNU_SUBST_LIST to SUBST_LIST
-       and adjust throughout.  For a type, pass the variant part in the
-       call to build_variant_list.
-
-2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/decl.c (gnat_to_gnu_component_type): Cap the alignment
-       of the component type according to the component size.
-
-2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Add a
-       description of the various types associated with the unconstrained
-       type.  Declare the fat pointer earlier.  Set the current function
-       as context on the template type, and the fat pointer type on the
-       array type.  Always mark the fat pointer type as artificial and set
-       it as the context for the pointer type to the array.  Also reuse
-       GNU_ENTITY_NAME.  Finish up the unconstrained type at the very end.
-       * gcc-interface/misc.c (gnat_get_array_descr_info): Do not handle
-       fat pointer types and tidy up accordingly.
-       * gcc-interface/utils.c (build_unc_object_type): Do not set the
-       context on the template type.
-       (gnat_pushdecl): Mark the canonical fat pointer types as artificial.
-
-2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/gigi.h (operand_type): New static inline function.
-       * gcc-interface/trans.c (gnat_to_gnu): Do not suppress conversion
-       to the resulty type at the end for array types.
-       * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Do not
-       remove conversions between array types on the LHS.
-
-2020-05-12  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * sem_aggr.ads (Is_Single_Aggregate): New function.
-       * sem_aggr.adb (Is_Others_Aggregate): Use local variable.
-       (Is_Single_Aggregate): New function to recognize an aggregate with
-       a single association containing a single choice.
-       * fe.h (Is_Others_Aggregate): Delete.
-       (Is_Single_Aggregate): New declaration.
-       * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Call
-       Is_Single_Aggregate instead of Is_Others_Aggregate.
-
-2020-05-12  Eric Botcazou  <ebotcazou@adacore.com>
-
-       PR ada/95035
-       * gcc-interface/utils.c (packable_type_hasher::equal): Also compare
-       the scalar storage order.
-       (hash_packable_type): Also hash the scalar storage order.
-       (hash_pad_type): Likewise.
-
-2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/*.[ch]: Update copyright year.
-
-2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Assert that
-       the prefix is not a type.
-
-2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Rename into...
-       (TYPE_BIT_PACKED_ARRAY_TYPE_P): ...this.
-       (TYPE_IS_PACKED_ARRAY_TYPE_P): Rename into...
-       (BIT_PACKED_ARRAY_TYPE_P): ...this.
-       (TYPE_IMPL_PACKED_ARRAY_P): Adjust to above renaming.
-       * gcc-interface/gigi.h (maybe_pad_type): Remove IS_USER_TYPE parameter.
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Adjust call
-       to maybe_pad_type.
-       <E_Ordinary_Fixed_Point_Type>: Remove const qualifiers for tree.
-       <E_Signed_Integer_Subtype>: Remove redundant test and redundant call
-       to associate_original_type_to_packed_array.  Turn test into assertion.
-       Call associate_original_type_to_packed_array and modify gnu_entity_name
-       accordingly.  Explicitly set the parallel type for GNAT encodings.
-       Call create_type_decl in the misaligned case before maybe_pad_type.
-       <E_Array_Type>: Do not use the name of the implementation type for a
-       packed array when not using GNAT encodings.
-       <E_Array_Subtype>: Move around setting flags. Use the result of the
-       call to associate_original_type_to_packed_array for gnu_entity_name.
-       <E_Record_Subtype>: Create XVS type and XVZ variable only if debug
-       info is requested for the type.
-       Call create_type_decl if a padded type was created for a type entity.
-       (gnat_to_gnu_component_type): Use local variable and adjust calls to
-       maybe_pad_type.
-       (gnat_to_gnu_subprog_type): Adjust call to maybe_pad_type.
-       (gnat_to_gnu_field): Likewise.
-       (validate_size): Adjust to renaming of macro.
-       (set_rm_size): Likewise.
-       (associate_original_type_to_packed_array): Adjust return type and
-       return the name of the original type if GNAT encodings are not used.
-       * gcc-interface/misc.c (gnat_get_debug_typ): Remove obsolete stuff.
-       (gnat_get_fixed_point_type_info): Remove const qualifiers for tree.
-       (gnat_get_array_descr_info): Likewise and set variables lazily.
-       Remove call to maybe_debug_type.  Simplify a few computations.
-       (enumerate_modes): Remove const qualifier for tree.
-       * gcc-interface/utils.c (make_type_from_size): Adjust to renaming.
-       (maybe_pad_type): Remove IS_USER_TYPE parameter and adjust.  Remove
-       specific code for implementation types for packed arrays.
-       (compute_deferred_decl_context): Remove const qualifier for tree.
-       (convert): Adjust call to maybe_pad_type.
-       (unchecked_convert): Likewise.
-       * gcc-interface/utils2.c (is_simple_additive_expressio): Likewise.
-
-2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Use
-       build_nonshared_array_type to build the common type and declare it.
-
-2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the user
-       for -fnon-call-exceptions in default mode.
-
-2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/trans.c (lvalue_required_p) <N_Selected_Component>:
-       Merge with N_Slice.
-       <N_Allocator>: Move to...
-       (lvalue_for_aggregate_p): ...here.  New function.
-       (Identifier_to_gnu): For an identifier with aggregate type, also
-       call lvalue_for_aggregate_p if lvalue_required_p returned false
-       before substituting the identifier with the constant.
-
-2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/trans.c (gnat_to_gnu): Do not wrap boolean values if
-       they appear in any kind of attribute references.
-
-2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Deal
-       with qualified "others" aggregates in the memset case.
-
-2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/decl.c (gnat_to_gnu_param): Also back-annotate the
-       mechanism in the case of an Out parameter only passed by copy-out.
-
-2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/gigi.h (change_qualified_type): Move around.
-       (maybe_vector_array): Likewise.
-       (maybe_padded_object): New static line function.
-       * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Component_Size>:
-       Remove useless code.
-       <Attr_Null_Parameter>: Remove obsolete code.
-       (Call_to_gn): Likewise.  Use maybe_padded_object to remove padding.
-       (gnat_to_gnu): Likewise.
-       <N_String_Literal>: Do not add a useless null character at the end.
-       <N_Indexed_Component>: Likewise and remove obsolete code.
-       (add_decl_expr): Likewise.
-       (maybe_implicit_deref): Likewise.
-       * gcc-interface/utils.c (maybe_unconstrained_array): Likewise.
-       * gcc-interface/utils2.c (gnat_invariant_expr): Likewise.
 
-2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
+2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * eval_fat.adb (Succ): Add a special case for zero if the type does
+       not support denormalized numbers.  Always use the canonical formula
+       in other cases and add commentary throughout the function.
+
+2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-fatgen.adb: Remove with clause for Interfaces and
+       use type clauses for Interfaces.Unsigned_{16,32,64}.
+       (Small16): Remove.
+       (Small32): Likewise
+       (Small64): Likewise.
+       (Small80): Likewise.
+       (Tiny16): Likewise.
+       (Tiny32): Likewise.
+       (Tiny64): Likewise.
+       (Tiny80): Likewise.
+       (Siz): Always use 16.
+       (NR): New constant.
+       (Rep_Last): Use it in the computation.
+       (Exp_Factor): Remove special case for 80-bit.
+       (Sign_Mask): Likewise.
+       (Finite_Succ): New function implementing the Succ attribute for
+       finite numbers.
+       (Pred): Rewrite in terms of Finite_Succ.
+       (Succ): Likewise.
+
+2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+
+       * debug_a.adb (Debug_Output_Astring): Remove obsolete comment.
+
+2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_attr.adb (Check_Image_Type): Protect against empty
+       Image_Type.
+
+2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnat/a-nbnbin.ads (From_Universal_Image): New.
+       (Big_Integer): Update definition.
+       * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb
+       (From_Universal_Image): New.
+       (From_String): Remove alternate body, replaced by
+       From_Universal_Image.
+       (Big_Real): Update definition.
+
+2021-04-29  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch8.adb (Find_Type): Check the No_Obsolescent_Features
+       restriction for 'Class applied to an untagged incomplete
+       type (when Ada_Version >= Ada_2005).  Remove disabling of the
+       warning message for such usage, along with the ??? comment,
+       which no longer applies (because the -gnatg switch no longer
+       sets Warn_On_Obsolescent_Feature).
+
+2021-04-29  Yannick Moy  <moy@adacore.com>
+
+       * errout.adb (Error_Msg_NEL): Extract span from node.
+       (First_And_Last_Nodes): Use spans for subtype indications and
+       attribute definition clauses.
+       (Write_Source_Code_Lines): Fix for tabulation characters. Change
+       output for large spans to skip intermediate lines.
+       * sem_case.adb (Check_Choice_Set): Report duplicate choice on
+       the Original_Node for the case.
+       (Generic_Check_Choices): Set the Original_Node for the rewritten
+       case, so that the subtree used in spans has the correct
+       locations.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb, sem_util.adb: Fix style.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * nlists.ads (List_Length): Adapt comment to match the
+       behaviour.
+
+2021-04-28  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_eval.adb (Eval_Selected_Component): Only consider compile
+       time known aggregates.
+
+2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-fatgen.adb: Add use clause for Interfaces.Unsigned_16
+       and Interfaces.Unsigned_32.
+       (Small16): New constant.
+       (Small32): Likewise.
+       (Small64): Likewise.
+       (Small80): Likewise.
+       (Pred): Declare a local overlay for Small and return it negated
+       for zero if the type does not support denormalized numbers.
+       (Succ): Likewise, but return it directly.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * inline.adb (Formal_Is_Used_Once): Refine type of the counter
+       variable; remove redundant assignment.
+
+2021-04-28  Patrick Bernardi  <bernardi@adacore.com>
+
+       * libgnarl/s-interr.adb (Install_Restricted_Handlers): Change
+       Prio parameter to type Interrupt_Priority.
+       * libgnarl/s-interr.ads (Install_Restricted_Handlers): Likewise.
+       * libgnarl/s-interr__dummy.adb (Install_Restricted_Handlers):
+       Likewise.
+       * libgnarl/s-interr__hwint.adb (Install_Restricted_Handlers):
+       Likewise.
+       * libgnarl/s-interr__sigaction.adb (Install_Restricted_Handlers):
+       Likewise.
+       * libgnarl/s-interr__vxworks.adb (Install_Restricted_Handlers):
+       Likewise.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_type.ads (Write_Interp_Ref): Removed; no longer needed.
+       * sem_type.adb (Headers): Removed; now the hash table is
+       directly in the Interp_Map alone.
+       (Interp_Map): Now an instance of the GNAT.HTable.Simple_HTable.
+       (Last_Overloaded): New variable to emulate Interp_Map.Last.
+       (Add_One_Interp): Adapt to new data structure.
+       (Get_First_Interp): Likewise.
+       (Hash): Likewise.
+       (Init_Interp_Tables): Likewise.
+       (New_Interps): Likewise.
+       (Save_Interps): Likewise; handle O_N variable like in
+       Get_First_Interp.
+       (Write_Interp_Ref): Removed; no longer needed.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * inline.adb (Do_Reset_Calls): Now an instance of Traverse_Proc.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Analyze_Aspect_Static): Reuse
+       Error_Msg_Ada_2020_Feature for aspect Static.
+       (Analyze_One_Aspect): Likewise for aspect Full_Access.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Analyze_Aspect_Static): Refactor to have a
+       single check for the expression being present; adapt comments.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Analyze_Aspect_Static): Use aspect name in the
+       error message.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_eval.adb (Eval_Selected_Component): Simplify with
+       Unqualify.
+
+2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-valrea.adb (Fast2Sum): New function.
+       (Integer_to_Real): Use it in an iterated addition with exact
+       error handling for the case where an extra digit is needed.
+       Move local variable now only used in the exponentiation case.
+
+2021-04-28  Yannick Moy  <moy@adacore.com>
+
+       * errout.adb: (Error_Msg_Internal): Use span instead of
+       location.
+       (Error_Msg, Error_Msg_NEL): Add versions with span parameter.
+       (Error_Msg_F, Error_Msg_FE, Error_Msg_N, Error_Msg_NE,
+       Error_Msg_NW): Retrieve span from node.
+       (First_Node): Use the new First_And_Last_Nodes.
+       (First_And_Last_Nodes): Expand on previous First_Node. Apply to
+       other nodes than expressions.
+       (First_Sloc): Protect against inconsistent locations.
+       (Last_Node): New function based on First_And_Last_Nodes.
+       (Last_Sloc): New function similar to First_Sloc.
+       (Output_Messages): Update output when -gnatdF is used. Use
+       character ~ for making the span visible, similar to what is done
+       in GCC and Clang.
+       * errout.ads (Error_Msg, Error_Msg_NEL): Add versions with span
+       parameter.
+       (First_And_Last_Nodes, Last_Node, Last_Sloc): New subprograms.
+       * erroutc.adb: Adapt to Sptr field being a span.
+       * erroutc.ads (Error_Msg_Object): Change field Sptr from
+       location to span.
+       * errutil.adb: Adapt to Sptr field being a span.
+       * freeze.adb: Use Errout reporting procedures for nodes to get
+       spans.
+       * par-ch3.adb: Likewise.
+       * par-prag.adb: Likewise.
+       * par-util.adb: Likewise.
+       * sem_case.adb: Likewise.
+       * sem_ch13.adb: Likewise.
+       * sem_ch3.adb: Likewise.
+       * sem_prag.adb: Likewise.
+       * types.ads: (Source_Span): New type for spans.
+       (To_Span): Basic constructors for spans.
+
+2021-04-28  Arnaud Charlet  <charlet@adacore.com>
+
+       * einfo.adb (Discriminant_Constraint): Refine assertion.
+
+2021-04-28  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_util.adb (Add_Own_DIC): Suppress expansion of a DIC pragma
+       when the pragma occurs for an abstract type, since that could
+       lead to a call to an abstract function, and such DIC checks can
+       never be performed for abstract types in any case.
+       * sem_disp.adb (Check_Dispatching_Context): Suppress the check
+       for illegal calls to abstract subprograms when the call occurs
+       within a Default_Initial_Condition aspect and the call is passed
+       the current instance as an actual.
+       (Has_Controlling_Current_Instance_Actual): New function to test
+       a call to see if it has any actuals given by direct references
+       to a current instance of a type
+       * sem_res.adb (Resolve_Actuals): Issue an error for a call
+       within a DIC aspect to a nonprimitive subprogram with an actual
+       given by the name of the DIC type's current instance (which will
+       show up as a reference to the formal parameter of a DIC
+       procedure).
+
+2021-04-28  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch3.adb (Expand_Record_Extension): Set Parent_Subtype on
+       the type extension when within a generic unit, even though
+       expansion is disabled, to allow for proper resolution of
+       selected components inherited from an ancestor.
+
+2021-04-28  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_aux.adb (Is_Limited_Type): Fix logic to check Is_Type
+       before assuming Ent is a typo.
+       * sem_ch4.adb (Analyze_Expression_With_Actions): Update
+       comments, minor reformatting.
+       * sem_res.adb (Resolve_Declare_Expression): Add protection
+       against no type.
+
+2021-04-28  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch6.adb: Fix typo in comment.
+       * sem_ch3.adb (Access_Subprogram_Declaration): Add missing call
+       to Create_Extra_Formals. Remove obsolete bootstrap check.
+       * sem_eval.adb (Eval_Selected_Component): Simplify a
+       selected_component on an aggregate.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * fmap.ads (Reset_Tables): Remove outdated references to
+       GNSA/ASIS.
+       * sem_eval.ads (Initialize): Likewise.
+       * sem_type.adb (Headers): Remove initialization at elaboration.
+       * sem_type.ads (Init_Interp_Tables): Remove outdated reference
+       to gnatf.
+       * stringt.ads (Initialize): Fix style in comment.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_res.ads: Update reference in comment.
+       * sem_type.ads: Fix casing in a name of a unit.
+
+2021-04-28  Yannick Moy  <moy@adacore.com>
+
+       * ghost.adb (Check_Ghost_Context): Add continuation message when
+       in predicate.
+
+2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-valrea.adb (Integer_to_Real): Use a subtype of Num
+       for the component type of the table of powers of ten.
+       * libgnat/s-valuer.adb (Round_Extra): Add assertion on Base.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch5.adb (Analyze_Case_Statement): Extend optimization to
+       all objects; fix typo in comment.
+
+2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch9.adb (Build_Barrier_Function): Refine type of a
+       protected type entity.
+       (Is_Pure_Barrier): Fix style.
+
+2021-04-28  Bob Duff  <duff@adacore.com>
+
+       * exp_ch3.adb (Simple_Init_Defaulted_Type): Simplify the code,
+       and always use OK_Convert_To, rather than Unchecked_Convert_To
+       and Convert_To.
+
+2021-04-28  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch3.adb (Analyze_Object_Declaration): Remove dead code.
+       * ali.ads, ali.adb (Scan_ALI): Remove unused parameters.
+       Remove unused code related to Xref lines.
+       (Get_Typeref): Removed, no longer used.
+
+2021-04-28  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_attr.adb (Build_Array_VS_Func, Build_Record_VS_Func,
+       Expand_N_Attribute_Reference): Use Get_Fullest_View instead of
+       Validated_View.
+       (Build_Record_VS_Func): Adjust to keep using Validated_View.
+       (Expand_N_Attribute_Reference) [Valid]: Use
+       Small_Integer_Type_For to allow for more compile time
+       evaluations.
+       * sem_util.adb (Cannot_Raise_Constraint_Error): Add more precise
+       support for N_Indexed_Component and fix support for
+       N_Selected_Component which wasn't completely safe.
+       (List_Cannot_Raise_CE): New.
+       * libgnat/i-cobol.adb (Valid_Packed): Simplify test to address
+       new GNAT warning.
+
+2021-04-28  Arnaud Charlet  <charlet@adacore.com>
+
+       * .gitignore: New.
+       * doc/share/conf.py: Add Python 3 compatibility.
+       * doc/share/gnat.sty: Add missing file.
+
+2021-04-28  Richard Wai  <richard@annexi-strayline.com>
 
-       * gcc-interface/utils2.c: Include builtins.h.
-       (known_alignment) <ADDR_EXPR>: Use DECL_ALIGN for DECL_P operands
-       and get_object_alignment for the rest.
+       * libgnat/a-cohase.ads (Cursor): Synchronize comments for the Cursor
+       type definition to be consistent with identical definitions in other
+       container packages. Add additional comments regarding the importance of
+       maintaining the "Position" component for predefined equality.
+       * libgnat/a-cohama.ads (Cursor): Likewise.
+       * libgnat/a-cihama.ads (Cursor): Likewise.
+       * libgnat/a-cohase.adb (Find, Insert): Ensure that Cursor objects
+       always have their "Position" component set to ensure predefined
+       equality works as required.
+       * libgnat/a-cohama.adb (Find, Insert): Likewise.
+       * libgnat/a-cihama.adb (Find, Insert): Likewise.
 
-2020-05-08  Eric Botcazou  <ebotcazou@adacore.com>
+2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Force at
-       least the unit size for an aliased object of a constrained nominal
-       subtype whose size is variable.
+       * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Do not demote a
+       const or pure function because of a parameter whose type is pointer
+       to function.
+       * gcc-interface/trans.c (Call_to_gnu): Do not put back a conversion
+       between an actual and a formal that are unconstrained array types.
+       (gnat_gimplify_expr) <CALL_EXPR>: New case.
+       * gcc-interface/utils2.c (build_binary_op): Do not use |= operator.
+       (gnat_stabilize_reference_1): Likewise.
+       (gnat_rewrite_reference): Likewise.
+       (build_unary_op): Do not clear existing TREE_CONSTANT on the result.
+       (gnat_build_constructor): Also accept the address of a constant
+       CONSTRUCTOR as constant element.
 
-2020-05-08  Eric Botcazou  <ebotcazou@adacore.com>
+2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Deal
-       with artificial maximally-sized types designed by access types.
-       * gcc-interface/utils.c (packable_type_hash): New structure.
-       (packable_type_hasher): Likewise.
-       (packable_type_hash_table): New hash table.
-       (init_gnat_utils): Initialize it.
-       (destroy_gnat_utils): Destroy it.
-       (packable_type_hasher::equal): New method.
-       (hash_packable_type): New static function.
-       (canonicalize_packable_type): Likewise.
-       (make_packable_type): Make sure not to use too small a type for the
-       size of the new fields.  Canonicalize the type if it is named.
+       * gcc-interface/trans.c (is_array_of_scalar_type): New predicate.
+       (find_decls_r): New function.
+       (return_slot_opt_for_pure_call_p): New predicate.
+       (Call_to_gnu): Do not create a temporary for the return value if the
+       parent node is an aggregate.  If there is a target, try to apply the
+       return slot optimization to regular calls to pure functions returning
+       an array of scalar type.
 
-2020-05-08  Eric Botcazou  <ebotcazou@adacore.com>
+2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * gcc-interface/trans.c (Raise_Error_to_gnu): Always compute a lower
-       bound and an upper bound for use by the -gnateE switch for range and
-       comparison operators.
+       * gcc-interface/trans.c (language_function): Add comment.
+       (loop_info_d): Add fndecl and invariants fields.
+       (find_loop_for): Test fndecl instead of the context of var.
+       (find_loop): New function.
+       (Regular_Loop_to_gnu): Fold back into...
+       (Loop_Statement_to_gnu): ...this.  Emit invariants on entry, if any.
+       (gnat_to_gnu) <N_Selected_Component>: Record nonconstant invariant
+       offset computations in loops when optimization is enabled.
+       * gcc-interface/utils2.c (gnat_invariant_expr): Handle BIT_AND_EXPR.
 
-2020-05-08  Eric Botcazou  <ebotcazou@adacore.com>
+2021-04-20  Martin Liska  <mliska@suse.cz>
 
-       * gcc-interface/decl.c (gnat_to_gnu_param): Do not make a variant of
-       the type in LTO mode.
+       * gnatvsn.ads: Bump Library_Version to 12.
 
-2020-05-04  Mikael Pettersson  <mikpelinux@gmail.com>
+2021-04-13  Eric Botcazou  <ebotcazou@adacore.com>
 
-       PR bootstrap/94918
-       * mingw32.h: Prevent windows.h from including emmintrin.h on Cygwin64.
-       * s-oscons-tmplt.c (Serial_Port_Descriptor): Use System.Win32.HANDLE
-       also on Cygwin.
+       * gcc-interface/misc.c (gnat_init): Set default range bits to 0.
+       * gcc-interface/trans.c (extract_encoding): Delete.
+       (decode_name): Likewise.
+       (File_Name_to_gnu): New function.
+       (gigi): Call it to translate file names.  Replace assertion on
+       1-1 mapping between files and line maps with conditional error.
 
-2020-03-11  Richard Wai  <richard@annexi-strayline.com>
+2021-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
 
-       * gcc-interface/decl.c (gnat_to_gnu_entity): Also test Is_Public on
-       the Alias of the entitiy, if it is present, in the main assertion.
+       * gnat_ugn.texi (Top): Avoid invalid "up" link.
 
-2020-02-06  Alexandre Oliva <oliva@adacore.com>
+2021-03-29  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * raise-gcc.c (personality_body) [__ARM_EABI_UNWINDER__]:
-       Initialize barrier_cache.sp when ending phase1.
+       PR ada/99802
+       * freeze.adb (Is_Full_Access_Aggregate): Call Is_Full_Access_Object
+       on the name of an N_Assignment_Statement to spot full access.
 
-2020-01-04  Eric Botcazou  <ebotcazou@adacore.com>
+2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity): Build a TYPE_STUB_DECL
+       for the main variant of an enumeration type declared as volatile.
+
+2021-03-09  Mikael Pettersson  <mikpelinux@gmail.com>
+
+       * raise-gcc.c: On Cygwin include mingw32.h to prevent
+       windows.h from including x86intrin.h or emmintrin.h.
+
+2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR ada/99264
+       * init.c (__gnat_alternate_sta) [Linux]: Remove preprocessor test on
+       MINSIGSTKSZ and bump size to 32KB.
+       * libgnarl/s-osinte__linux.ads (Alternate_Stack_Size): Bump to 32KB.
+
+2021-03-02  Mikael Pettersson  <mikpelinux@gmail.com>
+
+       PR bootstrap/98590
+       * cstreams.c: Ensure fileno_unlocked() is visible on Cygwin.
+
+2021-03-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR ada/99095
+       * sem_ch8.adb (Check_Constrained_Object): Restrict again the special
+       optimization for limited types to non-array types except in the case
+       of an extended return statement.
+
+2021-03-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR ada/99020
+       * sem_ch3.adb (Build_Discriminated_Subtype): Set the Cloned_Subtype
+       only if the type is not private.
+
+2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
+
+       PR ada/98996
+       * Makefile.rtl: <mips*-*-linux*>
+       add 128Bit operation file for MIPS N64 and N32 to
+       LIBGNAT_TARGET_PAIRS and EXTRA_GNATRTL_NONTASKING_OBJS
+
+2021-02-12  Arnaud Charlet  <charlet@adacore.com>
+
+       * repinfo.ads, repinfo.adb (*SO_Ref*): Restore.
+
+2021-02-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (components_to_record): If the first component
+       with rep clause is the _Parent field with variable size, temporarily
+       set it aside when computing the internal layout of the REP part again.
+       * gcc-interface/utils.c (finish_record_type): Revert to taking the
+       maximum when merging sizes for all record types with rep clause.
+       (merge_sizes): Put SPECIAL parameter last and adjust recursive calls.
+
+2021-02-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Make the
+       two fields of the fat pointer type addressable, and do not make the
+       template type read-only.
+       <E_Record_Type>: If the type has discriminants mark it as may_alias.
+       * gcc-interface/utils.c (make_dummy_type): Likewise.
+       (build_dummy_unc_pointer_types): Likewise.
+
+2021-01-26  Marius Hillenbrand  <mhillen@linux.ibm.com>
+
+       PR ada/98228
+       * gcc-interface/utils.c (maybe_pad_type): Test the size of the new
+       packable type instead of its alignment for addressability's sake.
+
+2021-01-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (make_covariant_thunk): Set the DECL_CONTEXT
+       of the parameters and do not set TREE_PUBLIC on the thunk.
+       (maybe_make_gnu_thunk): Pass the alias to the covariant thunk.
+       * gcc-interface/utils.c (finish_subprog_decl): Set the DECL_CONTEXT
+       of the parameters here...
+       (begin_subprog_body): ...instead of here.
+
+2021-01-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR ada/98740
+       * gcc-interface/trans.c (add_decl_expr): Always mark TYPE_ADA_SIZE.
+
+2021-01-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+       PR ada/98595
+       * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <riscv*-*-rtems*>: Use
+       wraplf version of Aux_Long_Long_Float.
+
+2021-01-03  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gnatvsn.ads: Bump copyright year.
 
-2020-01-01  Jakub Jelinek  <jakub@redhat.com>
+2021-01-01  Jakub Jelinek  <jakub@redhat.com>
+
+       * gnat_ugn.texi: Bump @copying's copyright year.
+       * gnat_rm.texi: Likewise.
+
+2021-01-01  Jakub Jelinek  <jakub@redhat.com>
 
-       Update copyright years.
+       * ChangeLog-2020: Rotate ChangeLog.  New file.
 
-       * gnat_ugn.texi: Bump @copying's copyright year.
-       * gnat_rm.texi: Likewise.
 \f
-Copyright (C) 2020 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright