]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/ada/ChangeLog
changelog: Fix extra space after tab.
[thirdparty/gcc.git] / gcc / ada / ChangeLog
index 0841a935bac178d1b7b159aa336569b1a1095439..d3a7d08ab615707e3941d036c52ac43472273e64 100644 (file)
-2021-06-28  Martin Sebor  <msebor@redhat.com>
+2022-11-14  Boris Yakobowski  <yakobowski@adacore.com>
 
-       * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
-       Replace TREE_NO_WARNING with suppress_warning.
-       (gnat_gimplify_expr): Same.
-       * gcc-interface/utils.c (gnat_pushdecl): Same.
+       * sem_case.adb: silence false positive warning emitted by CodePeer
+       on predefined equality for type Choice_Range_Info.
 
-2021-06-21  Gary Dismukes  <dismukes@adacore.com>
+2022-11-14  Bob Duff  <duff@adacore.com>
 
-       * checks.adb (Selected_Range_Checks): In the case of a
-       qualified_expression where the qualifying subtype is an
-       unconstrained array subtype with fixed lower bounds for some of
-       its indexes, generate tests to check that those bounds are equal
-       to the corresponding lower bounds of the qualified array object.
+       * atree.ads: Remove some comments.
+       * err_vars.ads: Likewise.
+       * scans.ads: Likewise.
+       * sinput.ads: Likewise.
+       * checks.ads: Likewise. Also add a "???" comment indicating an
+       obsolete comment that is too difficult to correct at this time.
+       * sem_attr.adb: Minor comment rewrite.
 
-2021-06-21  Bob Duff  <duff@adacore.com>
+2022-11-14  Javier Miranda  <miranda@adacore.com>
 
-       * libgnat/s-valuen.ads (Value_Enumeration,
-       Valid_Enumeration_Value): Inline.
-       (Value_Enumeration_Pos): Add Pure_Function.
+       * exp_intr.adb
+       (Expand_Dispatching_Constructor_Call): Improve warning message.
+       * freeze.adb
+       (Check_No_Parts_Violations): Improve error message.
 
-2021-06-21  Justin Squirek  <squirek@adacore.com>
+2022-11-14  Alexandre Oliva  <oliva@adacore.com>
 
-       * doc/gnat_rm/implementation_defined_pragmas.rst: Document new
-       feature under pragma Extensions_Allowed.
-       * gnat_rm.texi: Regenerate.
-       * errout.adb, errout.ads (Error_Msg_GNAT_Extension): Created to
-       issue errors when parsing extension only constructs.
-       * exp_ch11.adb, exp_ch11.ads (Expand_N_Raise_When_Statement):
-       Created to expand raise ... when constucts.
-       * exp_ch5.adb, exp_ch5.ads (Expand_N_Goto_When_Statement):
-       Created to expand goto ... when constructs.
-       * exp_ch6.adb, exp_ch6.ads (Expand_N_Return_When_Statement):
-       Created to expand return ... when constructs.
-       * expander.adb (Expand): Add case entries for "when" constructs.
-       * gen_il-gen-gen_nodes.adb, gen_il-types.ads: Add entries for
-       "when" constructs.
-       * par-ch11.adb (P_Raise_Statement): Add processing for raise ...
-       when.
-       * par-ch5.adb (Missing_Semicolon_On_Exit): Renamed to
-       Missing_Semicolon_On_When and moved to par-util.adb.
-       * par-ch6.adb (Get_Return_Kind): Renamed from Is_Simple and
-       processing added for "return ... when" return kind.
-       (Is_Simple): Renamed to Get_Return_Kind.
-       (P_Return_Statement): Add case for return ... when variant of
-       return statement.
-       * par-util.adb, par.adb (Missing_Semicolon_On_When): Added to
-       centeralize parsing of "when" keywords in the context of "when"
-       constructs.
-       * sem.adb (Analyze): Add case for "when" constructs.
-       * sem_ch11.adb, sem_ch11.ads (Analyze_Raise_When_Statement):
-       Created to analyze raise ... when constructs.
-       * sem_ch5.adb, sem_ch5.ads (Analyzed_Goto_When_Statement):
-       Created to analyze goto ... when constructs.
-       * sem_ch6.adb, sem_ch6.ads (Analyze_Return_When_Statement):
-       Created to analyze return ... when constructs.
-       * sprint.adb (Sprint_Node_Actual): Add entries for new "when"
-       nodes.
-
-2021-06-21  Steve Baird  <baird@adacore.com>
-
-       * Make-generated.in (GEN_IL_FLAGS): Keep only GNAT flags.
-       (ada/stamp-gen_il): Remove dependencies on libgnat/ sources.  Do not
-       copy libgnat/ sources locally and tidy up.
-       * Makefile.rtl: Include object files for new Text_Buffer units
-       in the GNATRTL_NONTASKING_OBJS list.
-       * exp_put_image.ads, exp_put_image.adb: Update Rtsfind calls to
-       match new specs. For example, calls to RE_Sink are replaced with
-       calls to RE_Root_Buffer_Type. Update comments and change
-       subprogram names accordingly (e.g., Preload_Sink is changed to
-       Preload_Root_Buffer_Type).
-       * impunit.adb: Add 6 new predefined units (Text_Buffers and 5
-       child units thereof).
-       * rtsfind.ads, rtsfind.adb: Add interfaces for accessing the
-       Ada.Strings.Text_Buffers package and declarations
-       therein (including the Unbounded child unit). Do not (yet)
-       delete interfaces for accessing the old Text_Output package.
-       * sem_attr.adb (Check_Put_Image_Attribute): Replace RE_Sink uses
-       with RE_Root_Buffer_Type and update comments accordingly.
-       * sem_ch10.adb (Analyze_Compilation_Unit): Update call to
-       reflect name change of callee (that is, the former Preload_Sink
-       is now Preload_Root_Buffer_Type).
-       * sem_ch13.adb (Has_Good_Profile): Replace RE_Sink use with
-       RE_Root_Buffer_Type.
-       (Build_Spec): Update comment describing a parameter type.
-       * gen_il.ads: Remove clauses for the old Text_Output package and
-       add them for Ada.Streams.Stream_IO.
-       (Sink): Declare.
-       (Create_File): Likewise.
-       (Increase_Indent): Likewise.
-       (Decrease_Indent): Likewise.
-       (Put): Likewise.
-       (LF): Likewise.
-       * gen_il.adb: Add clauses for Ada.Streams.Stream_IO.
-       (Create_File): New procedure.
-       (Increase_Indent): Likewise.
-       (Decrease_Indent): Likewise.
-       (Put): New procedures.
-       * gen_il-gen.adb: Add clauses for Ada.Text_IO.  Replace
-       Sink'Class with Sink throughout.  Use string concatenation and
-       LF marker instead of formatted strings and "\n" marker.  Update
-       Indent/Outdent calls to use new Increase_Indent/Decrease_Indent
-       names.
-       (Put_Membership_Query_Decl): Remove.
-       * gen_il-internals.ads: Replace Sink'Class with Sink throughout.
-       (Ptypes): Remove.
-       (Pfields): Likewise.
-       * gen_il-internals.adb: Remove clauses for GNAT.OS_Lib and
-       Ada.Strings.Text_Buffers.Files.  Replace Sink'Class with Sink
-       throughout.  Use string concatenation and LF marker instead of
-       formatted strings and "\n" marker.
-       (Stdout): Remove.
-       (Ptypes): Likewise.
-       (Pfields): Likewise.
-       * libgnarl/s-putaim.ads: Modify context clause, update
-       declaration of subtype Sink to refer to
-       Text_Buffers.Root_Buffer_Type instead of the old
-       Text_Output.Sink type.
-       * libgnarl/s-putaim.adb: Modify context clause and add use
-       clause to refer to Text_Buffers package.
-       * libgnat/a-cbdlli.ads, libgnat/a-cbdlli.adb,
-       libgnat/a-cbhama.ads, libgnat/a-cbhama.adb,
-       libgnat/a-cbhase.ads, libgnat/a-cbhase.adb,
-       libgnat/a-cbmutr.ads, libgnat/a-cbmutr.adb,
-       libgnat/a-cborma.ads, libgnat/a-cborma.adb,
-       libgnat/a-cborse.ads, libgnat/a-cborse.adb,
-       libgnat/a-cdlili.ads, libgnat/a-cdlili.adb,
-       libgnat/a-cidlli.ads, libgnat/a-cidlli.adb,
-       libgnat/a-cihama.ads, libgnat/a-cihama.adb,
-       libgnat/a-cihase.ads, libgnat/a-cihase.adb,
-       libgnat/a-cimutr.ads, libgnat/a-cimutr.adb,
-       libgnat/a-ciorma.ads, libgnat/a-ciorma.adb,
-       libgnat/a-ciormu.ads, libgnat/a-ciormu.adb,
-       libgnat/a-ciorse.ads, libgnat/a-ciorse.adb,
-       libgnat/a-coboho.ads, libgnat/a-coboho.adb,
-       libgnat/a-cobove.ads, libgnat/a-cobove.adb,
-       libgnat/a-cohama.ads, libgnat/a-cohama.adb,
-       libgnat/a-cohase.ads, libgnat/a-cohase.adb,
-       libgnat/a-coinho.ads, libgnat/a-coinho.adb,
-       libgnat/a-coinho__shared.ads, libgnat/a-coinho__shared.adb,
-       libgnat/a-coinve.ads, libgnat/a-coinve.adb,
-       libgnat/a-comutr.ads, libgnat/a-comutr.adb,
-       libgnat/a-convec.ads, libgnat/a-convec.adb,
-       libgnat/a-coorma.ads, libgnat/a-coorma.adb,
-       libgnat/a-coormu.ads, libgnat/a-coormu.adb,
-       libgnat/a-coorse.ads, libgnat/a-coorse.adb,
-       libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
-       libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.ads,
-       libgnat/a-nbnbre.adb, libgnat/a-strunb.ads,
-       libgnat/a-strunb.adb, libgnat/a-strunb__shared.ads,
-       libgnat/a-strunb__shared.adb, libgnat/s-rannum.ads,
-       libgnat/s-rannum.adb: Modify Put_Image procedure used in
-       Put_Image aspect specification to conform to Ada profile
-       rules (in particular, the first parameter shall be of type
-       Ada.Strings.Text_Buffers.Root_Buffer_Type'Class).
-       * libgnat/a-sttebu.ads, libgnat/a-sttebu.adb,
-       libgnat/a-stbubo.ads, libgnat/a-stbubo.adb,
-       libgnat/a-stbufi.ads, libgnat/a-stbufi.adb,
-       libgnat/a-stbufo.ads, libgnat/a-stbufo.adb,
-       libgnat/a-stbuun.ads, libgnat/a-stbuun.adb,
-       libgnat/a-stbuut.ads, libgnat/a-stbuut.adb: A new predefined
-       unit, Ada.Strings.Text_Buffers, and five child units.  Two of
-       the five are RM-defined: Bounded and Unbounded. The remaining
-       three are GNAT-defined: Files, Utils, and Formatting. The buffer
-       type corresponding to an output file, type Files.File_Buffer, is
-       simpler (and perhaps therefore slower) than its predecessor.
-       Caching similar to what was being done before could be added
-       later if that seems appropriate.
-       * libgnat/s-putima.ads: Modify context clause, update
-       declaration of subtype Sink to refer to
-       Text_Buffers.Root_Buffer_Type instead of the old
-       Text_Output.Sink type.
-       * libgnat/s-putima.adb: Modify context clause.  Update
-       Indent/Outdent calls to use new Increase_Indent/Decrease_Indent
-       names; ditto for "Put_String => Put" name change.
-       * libgnat/a-stteou__bootstrap.ads: Delete.
-
-2021-06-21  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * exp_ch5.adb (Expand_Assign_Array_Bitfield_Fast): If big-endian
-       ordering is in effect for the operands and they are small,
-       adjust the unchecked conversions done around them.
-
-2021-06-21  Richard Kenner  <kenner@adacore.com>
-
-       * einfo.ads (Return_Statement): Add documentation.
-       * exp_ch6.adb (Expand_N_Extended_Return_Statement): Set it.
-       * gen_il-fields.ads: Add it.
-       * gen_il-gen-gen_entities.adb: Add it.
-
-2021-06-21  Bob Duff  <duff@adacore.com>
-
-       * rtsfind.ads, libgnat/s-bitfie.ads, libgnat/s-bituti.adb,
-       libgnat/s-bituti.ads (Fast_Copy_Bitfield): New run-time library
-       function to copy bit fields faster than Copy_Bitfield. Cannot be
-       called with zero-size bit fields.  Remove obsolete ??? comments
-       from s-bituti.adb; we already do "avoid calling this if
-       Forwards_OK is False".
-       * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield,
-       Expand_Assign_Array_Bitfield_Fast): Generate calls to
-       Fast_Copy_Bitfield when appropriate.
-       * sem_util.adb, sem_util.ads (Get_Index_Bounds): Two new
-       functions for getting the index bounds. These are more
-       convenient than the procedure of the same name, because they can
-       be used to initialize constants.
-
-2021-06-21  Ed Schonberg  <schonberg@adacore.com>
-
-       * gen_il-fields.ads: Add Default_Subtype_Mark to enumeration
-       type for fields.
-       * gen_il-gen-gen_nodes.adb: Add call to create new field for
-       Formal_Type_Declaration node.
-       * par-ch12.adb (P_Formal_Type_Declaration): in Ada_2022 mode,
-       recognize new syntax for default: "or use subtype_mark".
-       (P_Formal_Type_Definition): Ditto for the case of a formal
-       incomplete type.
-       * sinfo.ads: Add field Default_Subtype_Mark to
-       N_Formal_Type_Declaration.
-       * sem_ch12.adb (Validate_Formal_Type_Default): New procedure, to
-       apply legality rules to default subtypes in formal type
-       declarations. Some legality rules apply to all defaults, such as
-       the requirement that the default for a formal type that depends
-       on previous formal entities must itself be a previously declared
-       formal of the same unit. Other checks are kind- specific.
-       (Analyze_Associations): Use specified default if there is no
-       actual provided for a formal type in an instance.
-       (Analyze_Formal_Type_Declaration): Call
-       Validate_Formal_Type_Default when default subtype is present.
-
-2021-06-21  Bob Duff  <duff@adacore.com>
-
-       * libgnat/s-valuen.ads, libgnat/s-valuen.adb
-       (Value_Enumeration_Pos): New function to compute the 'Pos of the
-       enumeration literal for a given String.  Return a special value
-       instead of raising an exception on invalid input. Called by both
-       Valid_Enumeration_Image and Value_Enumeration.
-       (Valid_Enumeration_Image): Return a Boolean indicating whether
-       the String is a valid Image for the given enumeration type.
-       (Value_Enumeration): Implement in terms of
-       Value_Enumeration_Pos.
-       * libgnat/s-vaenu8.ads, libgnat/s-vaen16.ads,
-       libgnat/s-vaen32.ads: Rename Valid_Enumeration_Image from the
-       instances.
-       * libgnat/s-valuti.ads: Correct documentation (it was not true
-       for the null string).
-       * libgnat/s-valuti.adb (Normalize_String): Do not raise
-       Constraint_Error for the null string, nor strings containing
-       nothing but blanks, so that Valid_Enumeration_Image can return
-       False in these cases, rather than raising an exception.
-       * rtsfind.ads (RE_Value_Enumeration_8, RE_Value_Enumeration_16,
-       RE_Value_Enumeration_32): New functions.
-       (RTE_Available): Improve comment (E doesn't have to be a
-       subprogram, although that's the usual case).
-       * sem_attr.adb (nalid_Value): Semantic analysis for new
-       attribute.
-       * exp_attr.adb: Call Expand_Valid_Value_Attribute for new
-       attribute.
-       * exp_imgv.ads, exp_imgv.adb (Expand_Valid_Value_Attribute): New
-       procedure to expand Valid_Value into a call to
-       Valid_Enumeration_Image_NN.
-       (Expand_Value_Attribute): Misc code cleanups.  Remove two ???
-       mark comments. RTE_Available won't work here.  For one thing,
-       RTE_Available (X) shouldn't be called until the compiler has
-       decided to make use of X (see comments on RTE_Available), and in
-       this case we're trying to AVOID calling something.
-       * snames.ads-tmpl: New attribute name.
-       * doc/gnat_rm/implementation_defined_attributes.rst: Document
-       new attribute.
+       * doc/gnat_rm/security_hardening_features.rst: Document optional
+       hardcfr checkpoints.
        * gnat_rm.texi: Regenerate.
+       * gnat_ugn.texi: Regenerate.
 
-2021-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+2022-11-14  Gary Dismukes  <dismukes@adacore.com>
 
-       * fe.h (Assume_No_Invalid_Values): Declare.
-       * opt.ads (Assume_No_Invalid_Values): Add warning comment.
+       * checks.adb
+       (Apply_Type_Conversion_Checks): Apply Root_Type to the type of the
+       prefix of a Pos attribute when checking whether the type is a
+       formal discrete type.
 
-2021-06-21  Bob Duff  <duff@adacore.com>
+2022-11-14  Ronan Desplanques  <desplanques@adacore.com>
 
-       * libgnat/s-bituti.ads (Small_Size): Do not include 0 in this
-       type.
-       * libgnat/s-bituti.adb (Copy_Bitfield): Do nothing for 0-bit
-       bitfields.
+       * libgnat/s-regpat.adb
+       (Parse): Fix handling of non-capturing parentheses.
 
-2021-06-21  Ghjuvan Lacambre  <lacambre@adacore.com>
+2022-11-14  Yannick Moy  <moy@adacore.com>
 
-       * exp_ch9.adb (Build_Simple_Entry_Call): Add comment.
-       * libgnat/s-rannum.adb (Random): Update comment.
-       * libgnat/s-rannum.ads (Generator): Update comment.
+       * sem_prag.adb (Analyze_Pragma): Add special case for the special
+       local subprogram created for contracts.
 
-2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
+2022-11-14  Piotr Trojanek  <trojanek@adacore.com>
 
-       * doc/gnat_rm/representation_clauses_and_pragmas.rst (Address
-       Clauses): Fix unbalanced parens.
-       * gnat_rm.texi: Regenerate.
+       * sem_ch12.adb (Build_Subprogram_Wrappers): Adjust slocs of the
+       copied aspects, just like we do in Build_Class_Wide_Expression for
+       inherited class-wide contracts.
+
+2022-11-14  Piotr Trojanek  <trojanek@adacore.com>
+
+       * inline.adb (Replace_Formal): Tune whitespace.
+       * sem_ch12.adb (Check_Overloaded_Formal_Subprogram): Refine type
+       of a formal parameter and local variable; this routine operates on
+       nodes and not entities.
+       * sem_ch12.ads: Tune whitespace.
+
+2022-11-14  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch12.adb (Analyze_Associations): Expand wrappers for
+       GNATprove.
+
+2022-11-14  Patrick Bernardi  <bernardi@adacore.com>
+
+       * libgnat/system-qnx-arm.ads: Set Support_Atomic_Primitives to
+       True.
+       * libgnat/system-rtems.ads: Add Support_Atomic_Primitives.
 
-2021-06-21  Ghjuvan Lacambre  <lacambre@adacore.com>
+2022-11-14  Yannick Moy  <moy@adacore.com>
 
-       * errout.adb (Handle_Serious_Error): Capitalize comment.
-       * exp_dbug.adb (Set_Entity_Name): Capitalize sentence.
-       * exp_dist.adb (Expand_All_Calls_Remote_Subprogram_Call): Fix
-       typo.
-       * sem_ch3.adb (Modular_Type_Declaration): Add space after comma.
+       * errout.adb (Error_Msg_Internal): Store span for Optr field, and
+       adapt to new type of Optr.
+       (Finalize. Output_JSON_Message, Remove_Warning_Messages): Adapt to
+       new type of Optr.
+       (Output_Messages): Use Optr instead of Sptr to display code
+       snippet closer to error.
+       * erroutc.adb (dmsg): Adapt to new type of Optr.
+       * erroutc.ads (Error_Msg_Object): Make Optr a span like Sptr.
+       * errutil.adb (Error_Msg): Likewise.
 
-2021-06-21  Ghjuvan Lacambre  <lacambre@adacore.com>
+2022-11-14  Arnaud Charlet  <charlet@adacore.com>
 
-       * debug.adb: Document -gnatd_U as taken.
-       * err_vars.ads (Warning_Doc_Switch): Set to True.
-       * errout.ads (Errout): Update documentation.
-       * gnat1drv.adb (Adjust_Global_Switches): React to -gnatd_U.
-       * hostparm.ads (Tag_Errors): Set to True.
-       * opt.ads (Unique_Error_Tag): Document -gnatd_U.
+       * doc/gnat_ugn/gnat_utility_programs.rst: Remove gnatcheck
+       reference.
 
-2021-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+2022-11-14  Martin Liska  <mliska@suse.cz>
 
-       * urealp.ads (UR_Write_To_JSON): Declare.
-       * urealp.adb (Decimal_Exponent_Hi): Treat numbers in base 10
-       specially and rewrite handling of numbers in other bases.
-       (Decimal_Exponent_Lo): Likewise.
-       (Normalize): Minor tweak.
-       (UR_Write_To_JSON): New wrapper procedure around UR_Write.
-       * repinfo.adb (List_Type_Info): When the output is to JSON, call
-       UR_Write_To_JSON instead of UR_Write.
+       Revert:
+       2022-11-09  Martin Liska  <mliska@suse.cz>
 
-2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
+       * doc/gnat-style.rst: Moved to...
+       * doc/gnat-style/index.rst: ...here.
+       * doc/gnat_rm.rst: Moved to...
+       * doc/gnat_rm/index.rst: ...here.
+       * doc/gnat_ugn.rst: Moved to...
+       * doc/gnat_ugn/index.rst: ...here.
+       * doc/share/latex_elements.py: Moved to...
+       * doc/share/ada_latex_elements.py: ...here.
+       * gcc-interface/Make-lang.in:
+       * doc/Makefile: Removed.
+       * doc/share/conf.py: Removed.
+       * doc/share/gnu_free_documentation_license.rst: Removed.
+       * gnat-style.texi: Removed.
+       * gnat_rm.texi: Removed.
+       * gnat_ugn.texi: Removed.
+       * doc/gnat-style/conf.py: New file.
+       * doc/gnat-style/gnu_free_documentation_license.rst: New file.
+       * doc/gnat_rm/conf.py: New file.
+       * doc/gnat_rm/gnu_free_documentation_license.rst: New file.
+       * doc/gnat_ugn/conf.py: New file.
+       * doc/gnat_ugn/gnu_free_documentation_license.rst: New file.
+       * doc/share/adabaseconf.py: New file.
+       * doc/gnat_rm/security_hardening_features.rst: Add role.
+       * doc/gnat_ugn/platform_specific_information.rst: Remove
+       duplicate definition of |nbsp|.
 
-       * sem_util.adb (Indexed_Component_Bit_Offset): Return an unknown
-       offset for components within multidimensional arrays; remove
-       redundant parens.
+2022-11-14  Martin Liska  <mliska@suse.cz>
 
-2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
+       Revert:
+       2022-11-14  Martin Liska  <mliska@suse.cz>
+
+       * gcc-interface/Make-lang.in: Support --with-sphinx-build.
+
+2022-11-14  Martin Liska  <mliska@suse.cz>
+
+       Revert:
+       2022-11-09  Martin Liska  <mliska@suse.cz>
+
+       * doc/gnat_rm/index.rst: Fix cross manual refs.
+
+2022-11-14  Martin Liska  <mliska@suse.cz>
+
+       Revert:
+       2022-11-14  Martin Liska  <mliska@suse.cz>
+
+       * gcc-interface/Make-lang.in:
+       Support installation if sphinx-build is missing.
+
+2022-11-09  Martin Liska  <mliska@suse.cz>
+
+       * gcc-interface/Make-lang.in:
+       Support installation if sphinx-build is missing.
+
+2022-11-09  Martin Liska  <mliska@suse.cz>
+
+       * doc/gnat_rm/index.rst: Fix cross manual refs.
+
+2022-11-09  Martin Liska  <mliska@suse.cz>
+
+       * gcc-interface/Make-lang.in: Support --with-sphinx-build.
+
+2022-11-09  Martin Liska  <mliska@suse.cz>
+
+       * doc/gnat-style.rst: Moved to...
+       * doc/gnat-style/index.rst: ...here.
+       * doc/gnat_rm.rst: Moved to...
+       * doc/gnat_rm/index.rst: ...here.
+       * doc/gnat_ugn.rst: Moved to...
+       * doc/gnat_ugn/index.rst: ...here.
+       * doc/share/latex_elements.py: Moved to...
+       * doc/share/ada_latex_elements.py: ...here.
+       * gcc-interface/Make-lang.in:
+       * doc/Makefile: Removed.
+       * doc/share/conf.py: Removed.
+       * doc/share/gnu_free_documentation_license.rst: Removed.
+       * gnat-style.texi: Removed.
+       * gnat_rm.texi: Removed.
+       * gnat_ugn.texi: Removed.
+       * doc/gnat-style/conf.py: New file.
+       * doc/gnat-style/gnu_free_documentation_license.rst: New file.
+       * doc/gnat_rm/conf.py: New file.
+       * doc/gnat_rm/gnu_free_documentation_license.rst: New file.
+       * doc/gnat_ugn/conf.py: New file.
+       * doc/gnat_ugn/gnu_free_documentation_license.rst: New file.
+       * doc/share/adabaseconf.py: New file.
+       * doc/gnat_rm/security_hardening_features.rst: Add role.
+       * doc/gnat_ugn/platform_specific_information.rst: Remove
+       duplicate definition of |nbsp|.
+
+2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils2.cc (build_allocator): For unconstrained
+       array types with a storage model and an initializing expression,
+       copy the initialization expression separately from the bounds. In
+       all cases with a storage model, pass the locally computed size for
+       the store.
+
+2022-11-08  Steve Baird  <baird@adacore.com>
+
+       * sem_attr.adb
+       (Eval_Attribute): Don't simplify 'Image call if Put_Image has been
+       specified.
+
+2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch6.adb, exp_put_image.adb, sem_aggr.adb, sem_attr.adb,
+       sem_ch5.adb, sem_type.adb, sem_util.adb: Replace
+       "Present (Find_Aspect (...))" with "Has_Aspect".
+
+2022-11-08  Ronan Desplanques  <desplanques@adacore.com>
+
+       * contracts.adb
+       (Preanalyze_Class_Conditions): New procedure.
+       (Preanalyze_Condition): Moved out from Merge_Class_Conditions in
+       order to be spec-visible.
+       * contracts.ads
+       (Preanalyze_Class_Conditions): New procedure.
+       * sem_prag.adb
+       (Analyze_Pre_Post_Condition_In_Decl_Part): Call
+       Preanalyze_Class_Conditions when necessary.
+
+2022-11-08  Johannes Kliemann  <kliemann@adacore.com>
+
+       * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Set
+       Support_Atomic_Primitives to True.
+       * libgnat/system-vxworks7-aarch64.ads: Set
+       Support_Atomic_Primitives to True.
+       * libgnat/system-vxworks7-arm-rtp-smp.ads: Set
+       Support_Atomic_Primitives to True.
+       * libgnat/system-vxworks7-arm.ads: Set Support_Atomic_Primitives
+       to True.
+       * libgnat/system-vxworks7-ppc-kernel.ads: Set
+       Support_Atomic_Primitives to False.
+       * libgnat/system-vxworks7-ppc-rtp-smp.ads: Set
+       Support_Atomic_Primitives to False.
+       * libgnat/system-vxworks7-ppc64-kernel.ads: Set
+       Support_Atomic_Primitives to True.
+       * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Set
+       Support_Atomic_Primitives to True.
+       * libgnat/system-vxworks7-x86-kernel.ads: Set
+       Support_Atomic_Primitives to True.
+       * libgnat/system-vxworks7-x86-rtp-smp.ads: Set
+       Support_Atomic_Primitives to True.
+       * libgnat/system-vxworks7-x86_64-kernel.ads: Set
+       Support_Atomic_Primitives to True.
+       * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Set
+       Support_Atomic_Primitives to True.
+
+2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fe.h (Get_Warn_On_Questionable_Layout): Add void parameter.
+
+2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch12.adb (Instantiate_Formal_Subprogram): Copy aspect Ghost
+       from formal subprogram declaration to the internally generated
+       procedure.
+
+2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch4.adb (Analyze_Case_Expression): Compute the
+       interpretations of the expression only at the end of the analysis,
+       but skip doing it if it is the operand of a type conversion.
+       (Analyze_If_Expression): Likewise.
+       * sem_res.adb (Resolve): Deal specially with conditional
+       expression that is the operand of a type conversion.
+       (Resolve_Dependent_Expression): New procedure.
+       (Resolve_Case_Expression): Call Resolve_Dependent_Expression.
+       (Resolve_If_Expression): Likewise.
+       (Resolve_If_Expression.Apply_Check): Take result type as
+       parameter.
+       (Resolve_Type_Conversion): Do not warn about a redundant
+       conversion when the operand is a conditional expression.
+
+2022-11-08  Javier Miranda  <miranda@adacore.com>
+
+       * debug.adb
+       (Debug_Flag_Underscore_XX): Switch -gnatd_X used temporarily to allow
+       disabling extra formal checks.
+       * exp_attr.adb
+       (Expand_N_Attribute_Reference [access types]): Add extra formals
+       to the subprogram referenced in the prefix of 'Unchecked_Access,
+       'Unrestricted_Access or 'Access; required to check that its extra
+       formals match the extra formals of the corresponding subprogram type.
+       * exp_ch3.adb
+       (Stream_Operation_OK): Declaration moved to the public part of the
+       package.
+       (Validate_Tagged_Type_Extra_Formals): New subprogram.
+       (Expand_Freeze_Record_Type): Improve the code that takes care of
+       adding the extra formals of dispatching primitives; extended to
+       add also the extra formals to renamings of dispatching primitives.
+       * exp_ch3.ads
+       (Stream_Operation_OK): Declaration moved from the package body.
+       * exp_ch6.adb
+       (Check_BIP_Actuals): Complete documentation.
+       (Has_BIP_Extra_Formal): Subprogram declaration moved to the public
+       part of the package. In addition, a parameter has been added to
+       disable an assertion that requires its use with frozen entities.
+       (Duplicate_Params_Without_Extra_Actuals): New subprogram.
+       (Check_Subprogram_Variant): Emit the call without duplicating the
+       extra formals since they will be added when the call is analyzed.
+       (Expand_Call_Helper): Ensure that the called subprogram has all its
+       extra formals, enforce assertion checking extra formals on thunks,
+       and mark calls from thunks as processed-BIP-calls to avoid adding
+       their extra formals twice.
+       (Is_Build_In_Place_Function): Return False for entities with foreign
+       convention.
+       (Is_Build_In_Place_Function_Call): Return True also for not BIP functions
+       that have BIP formals since the extra actuals are required.
+       (Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
+       Is_Return_Object replaced by the local variable Is_OK_Return_Object
+       that evaluates to False for scopes with foreign convention.
+       (Might_Have_Tasks): Fix check of class-wide limited record types.
+       (Needs_BIP_Task_Actuals): Remove assertion to allow calling this
+       function in more contexts; in addition it returns False for functions
+       returning objects with foreign convention.
+       (Needs_BIP_Finalization_Master): Likewise.
+       (Needs_BIP_Alloc_Form): Likewise.
+       (Validate_Subprogram_Calls): Check that the number of actuals (including
+       extra actuals) of calls in the subtree N match their corresponding
+       formals.
+       * exp_ch6.ads
+       (Has_BIP_Extra_Formal): Subprogram declaration moved to the public
+       part of the package. In addition, a parameter has been added to
+       disable an assertion that requires its use with frozen entities.
+       (Is_Build_In_Place_Function_Call): Complete documentation.
+       (Validate_Subprogram_Calls): Check that the number of actuals (including
+       extra actuals) of calls in the subtree N match their corresponding
+       formals.
+       * freeze.adb
+       (Check_Itype): Add extra formals to anonymous access subprogram itypes.
+       (Freeze_Expression): Improve code that disables the addition of extra
+       formals to functions with foreign convention.
+       (Check_Extra_Formals): Moved to package Sem_Ch6 as Extra_Formals_OK.
+       (Freeze_Subprogram): Add extra formals to non-dispatching subprograms.
+       * frontend.adb
+       (Frontend): Validate all the subprogram calls; it can be disabled using
+       switch -gnatd_X
+       * sem_ch3.adb
+       (Access_Subprogram_Declaration): Defer the addition of extra formals to
+       the freezing point so that we know the convention.
+       (Check_Anonymous_Access_Component): Likewise.
+       (Derive_Subprogram): Fix documentation.
+       * sem_ch6.adb
+       (Has_Reliable_Extra_Formals): New subprogram.
+       (Check_Anonymous_Return): Fix check of access to class-wide limited
+       record types.
+       (Check_Untagged_Equality): Placed in alphabetical order.
+       (Extra_Formals_OK): Subprogram moved from freeze.adb.
+       (Extra_Formals_Match_OK): New subprogram.
+       (Has_BIP_Formals): New subprogram.
+       (Has_Extra_Formals): New subprograms.
+       (Needs_Accessibility_Check_Extra): New subprogram.
+       (Parent_Subprogram): New subprogram.
+       (Add_Extra_Formal): Minor code cleanup.
+       (Create_Extra_Formals): Enforce matching extra formals on overridden
+       and aliased entities.
+       * sem_ch6.ads
+       (Extra_Formals_Match_OK): New subprogram.
+       (Extra_Formals_OK): Subprogram moved from freeze.adb.
+       * sem_eval.adb
+       (Compile_Time_Known_Value): Improve predicate to avoid assertion
+       failure; found working on this ticket; this change does not
+       affect the behavior of the compiler because this subprogram
+       has an exception handler that returns False when the assertion
+       fails.
+       * sem_util.adb
+       (Needs_Result_Accessibility_Level): Do not return False for dispatching
+       operations compiled with Ada_Version < 2012 since they they may be
+       overridden by primitives compiled with Ada_Version >= Ada_2012.
+
+2022-11-08  Bob Duff  <duff@adacore.com>
+
+       * warnsw.ads, warnsw.adb, fe.h, err_vars.ads, errout.ads: Move
+       Warning_Doc_Switch from Err_Vars to Warnsw. Access
+       Warn_On_Questionable_Layout on the C side via a function rather
+       than a variable, because we plan to turn the variables into
+       renamings, and you can't Export renamings.
+       * erroutc.adb, switch-c.adb, errout.adb: Likewise.
+       * gcc-interface/decl.cc: Use Get_Warn_On_Questionable_Layout
+       instead of Warn_On_Questionable_Layout.
+       * gcc-interface/Makefile.in (GNATMAKE_OBJS): Add warnsw.o, because
+       it is indirectly imported via Errout.
+       * gcc-interface/Make-lang.in (GNATBIND_OBJS): Likewise and remove
+       restrict.o (not needed).
+
+2022-11-08  Ronan Desplanques  <desplanques@adacore.com>
 
-       * sem_util.adb (Find_Overlaid_Entity): Ignore references to
-       components and discriminants.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst
+       (-gnatwc): Fix flag documentation.
+       * gnat_ugn.texi: Regenerate.
 
-2021-06-21  Doug Rupp  <rupp@adacore.com>
+2022-11-08  Steve Baird  <baird@adacore.com>
 
-       * Makefile.rtl (aarch64-linux) [LIBGNAT_TARGET_PAIRS]: Add
-       $(TRASYM_DWARF_UNIX_PAIRS).
-       [EXTRA_GNAT_RTL_NONTASKING_OBJS]: Add $(TRASYM_DWARF_UNIX_OBJS)
+       * sem_ch3.adb
+       (Analyze_Object_Declaration): Do not perform expansion actions if
+       In_Spec_Expression is true.
 
-2021-06-21  Gary Dismukes  <dismukes@adacore.com>
+2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * exp_util.adb (Expand_Sliding_Conversion): Only perform
-       expansion when Expander_Active is True. Add a comment about this
-       and refine existing comment regarding string literals.
+       * sem_ch4.adb (Analyze_Qualified_Expression): Analyze the
+       expression only after setting the type.
+       (Analyze_Unchecked_Type_Conversion): Likewise.
+       (Analyze_Short_Circuit): Likewise for the operands.
+       (Analyze_Type_Conversion): Minor tweaks.
+       (Analyze_Unchecked_Expression): Likewise.
 
-2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
+2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * sem_util.adb (Denotes_Same_Object): Simplify handling of
-       slices.
+       * sem_ch4.adb (Analyze_Qualified_Expression): Remove redundant
+       line.
 
-2021-06-21  Piotr Trojanek  <trojanek@adacore.com>
+2022-11-08  Ronan Desplanques  <desplanques@adacore.com>
 
-       * sem_util.adb (Is_Object_Renaming): Rename from Is_Renaming;
-       simplify; adapt callers.
+       * contracts.adb (Preanalyze_Condition): Use
+       Preanalyze_Spec_Expression.
 
-2021-06-21  Frederic Konrad  <konrad@adacore.com>
+2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
 
-       * Makefile.rtl: Compiles both static and dynamic libgnat for
-       powerpc64-wrs-vxworks7r2.
+       * exp_imgv.adb
+       (Expand_Wide_Image_Attribute): Handle just like attribute Image.
+       (Expand_Wide_Wide_Image_Attribute): Likewise.
+       * exp_put_image.adb
+       (Build_Image_Call): Adapt to also work for Wide and Wide_Wide
+       attributes.
+       * exp_put_image.ads
+       (Build_Image_Call): Update comment.
+       * rtsfind.ads
+       (RE_Id): Support wide variants of Get.
+       (RE_Unit_Table): Likewise.
 
-2021-06-18  Gary Dismukes  <dismukes@adacore.com>
+2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_ch3.adb (Constrain_Array): Add error checking for
-       fixed-lower-bound and constrained index ranges applied
-       inappropriately on subtypes of unconstrained and
-       fixed-lower-bound array types.
-       (Constrain_Index): Correct and refine comment related to
-       fixed-lower-bound index ranges.
+       * libgnat/a-ngcoar.ads, libgnat/a-ngcoar.adb: Remove extra spaces.
 
-2021-06-18  Bob Duff  <duff@adacore.com>
+2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
 
-       * gen_il-gen.adb: Improve comments.
-       * snames.ads-tmpl (Convention_Id): Remove "--  Plenty of space
-       for expansion", because that's irrelevant now that we are no
-       longer laying out node fields by hand.
+       * sem_ch12.adb (Validate_Formal_Type_Default): Remove call to
+       Collect_Interfaces, which had no effect apart from populating a
+       list that was not used; fix style.
 
-2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
+2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_util.adb (Denotes_Same_Object): Handle character literals
-       just like integer literals.
+       * exp_spark.adb (SPARK_Freeze_Type): Refine type of a local
+       object.
+       * sem_ch3.adb (Derive_Subprograms): Remove initial value for
+       New_Subp, which is in only written as an out parameter and never
+       read.
 
-2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
+2022-11-08  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * sem_util.adb (Denotes_Same_Object): Explicitly test for node
-       kinds being the same; deal with renamings one-by-one; adjust
-       numbers in references to the Ada RM.
+       * sem_res.adb (Resolve_If_Expression): Remove obsolete special
+       case.
 
-2021-06-18  Bob Duff  <duff@adacore.com>
+2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sprint.adb (Write_Source_Line): Check for EOF in
-       Line_Terminator loop.  Note that when a source file is read in,
-       an EOF character is added to the end.
+       * sem_aggr.adb (Resolve_Delta_Aggregate): Implement rules related
+       to limited objects appearing as the base expression.
 
-2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
+2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_aux.adb (Package_Specification): Add assertions to confirm
-       the kind of the of parameter and returned node.
-       * sem_ch12.adb (Remove_Parent): Reorder conditions; this change
-       appears to be semantically neutral, but is enough to avoid the
-       problematic call to Package_Specification.
-       * sem_util.adb (Is_Incomplete_Or_Private_Type): Replace loop
-       with a call to Package_Specification.
+       * sem_ch3.adb (OK_For_Limited_Init_In_05): Handle delta aggregates
+       just like other aggregates.
 
-2021-06-18  Bob Duff  <duff@adacore.com>
+2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_attr.adb (Eval_Attribute): For Enum_Lit'Size, use
-       Enum_Type'Object_Size.
+       * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reject
+       expressions of a limited types.
 
-2021-06-18  Olivier Hainque  <hainque@adacore.com>
+2022-11-08  Javier Miranda  <miranda@adacore.com>
 
-       * sigtramp-vxworks-target.inc (__aarch64__): Sync
-       REGNO_PC_OFFSET with the back-end DWARF_ALT_FRAME_RETURN_COLUMN.
-       In CFI_COMMON_REGS, leave r18 alone, VxWorks private.
+       * exp_ch9.adb
+       (Build_Master_Entity): Handle missing case: when the context of
+       the master is a BIP function whose result type has tasks.
 
-2021-06-18  Javier Miranda  <miranda@adacore.com>
+2022-11-08  Piotr Trojanek  <trojanek@adacore.com>
 
-       * contracts.adb (Process_Spec_Postconditions): Add missing
-       support for aliased subprograms and handle wrappers of
-       class-wide pre/post conditions.
-       (Process_Inherited_Preconditions): Add missing support for
-       aliased subprograms and handle wrappers of class-wide pre/post
-       conditions.
-       * einfo.ads (Class_Wide_Clone): Fix typo.
-       (Is_Class_Wide_Clone): Removed since it is not referenced.
-       (Is_Wrapper): Documenting new flag.
-       (LSP_Subprogram): Documenting new attribute.
-       * exp_ch3.adb (Make_Controlling_Function_Wrappers): Decorate
-       wrapper as Is_Wrapper and adjust call to
-       Override_Dispatching_Operation.
-       * freeze.adb (Build_Inherited_Condition_Pragmas): Fix typo in
-       documentation.
-       (Check_Inherited_Conditions): Handle LSP wrappers; ensure
-       correct decoration of LSP wrappers.
-       * gen_il-fields.ads (Is_Class_Wide_Clone): Removed.
-       (Is_Wrapper): Added.
-       (LSP_Subprogram): Added.
-       * gen_il-gen-gen_entities.adb (Is_Class_Wide_Clone): Removed.
-       (Is_Wrapper): Added.
-       (LSP_Subprogram): Added.
-       * gen_il-internals.adb (Image): Adding uppercase image of
-       LSP_Subprogram.
-       * sem_ch6.adb (New_Overloaded_Entity): Fix decoration of LSP
-       wrappers.
-       * sem_disp.ads (Override_Dispatching_Operation): Remove
-       parameter Is_Wrapper; no longer needed.
-       * sem_disp.adb (Check_Dispatching_Operation): Adjust assertion.
-       (Override_Dispatching_Operation): Remove parameter Is_Wrapper;
+       * libgnat/a-tags.adb
+       (Interface_Ancestor_Tags): Raise Tag_Error on No_Tag.
+       (Is_Descendant_At_Same_Level): Likewise.
+
+2022-11-08  Bob Duff  <duff@adacore.com>
+
+       * usage.adb: Add -gnatw_q and -gnatw_Q.
+
+2022-11-07  Cedric Landet  <landet@adacore.com>
+
+       * doc/gnat_ugn/gnat_and_program_execution.rst: Mention the needed
+       -no-pie for windows to use gprof.
+       * gnat_ugn.texi: Regenerate.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * lib-xref.adb (Hash): Tune hash function.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Non_Significant_Pragma_Reference): Detect
+       references with aggregates; only assign local variables Id and C
+       when necessary.
+
+2022-11-07  Bob Duff  <duff@adacore.com>
+
+       * exp_ch4.adb
+       (Component_Equality, Expand_Array_Equality)
+       (Expand_Record_Equality): Use named notation.
+
+2022-11-07  Bob Duff  <duff@adacore.com>
+
+       * exp_ch4.adb
+       (Expand_Array_Equality): Do not test Ltyp = Rtyp here, because
+       that is necessarily true. Move assertion thereof to more general
+       place.
+       (Expand_Composite_Equality): Pass in Outer_Type, for use in
+       warnings. Rename Typ to be Comp_Type, to more clearly distinguish
+       it from Outer_Type. Print warning when appropriate.
+       * exp_ch4.ads: Minor comment fix.
+       * errout.ads: There is no such pragma as Warning_As_Pragma --
+       Warning_As_Error must have been intended. Improve comment for ?x?.
+       * exp_ch3.adb
+       (Build_Untagged_Equality): Update comment to be accurate for more
+       recent versions of Ada.
+       * sem_case.adb
+       (Choice_Analysis): Declare user-defined "=" functions as abstract.
+       * sem_util.ads
+       (Is_Bounded_String): Give RM reference in comment.
+       * warnsw.ads, warnsw.adb
+       (Warn_On_Ignored_Equality): Implement new warning switch -gnatw_q.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Document new warning switch.
+       * gnat_ugn.texi: Regenerate.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aux.ads (Is_Body): Annotate with Inline.
+       * sem_util.ads (Is_Body_Or_Package_Declaration): Likewise.
+
+2022-11-07  Bob Duff  <duff@adacore.com>
+
+       * freeze.adb
+       (Build_Inherited_Condition_Pragmas): Do nothing if A_Post is
+       empty.
+
+2022-11-07  Quentin Ochem  <ochem@adacore.com>
+           Steve Baird  <baird@adacore.com>
+
+       * bindgen.adb: fixed the way the device init and final symbols are
+       computed, re-using the normal way these symbols would be computed
+       with a __device_ prefix. Also fixed the "is null;" procedure on
+       the host side which are not Ada 95, replaced with a procedure
+       raising an exception as it should never be called. Remove the
+       unused function Device_Ada_Final_Link_Name.
+
+2022-11-07  Steve Baird  <baird@adacore.com>
+
+       * opt.ads: Declare new string pointer variable, CUDA_Device_Library_Name.
+       Modify comments for existing Boolean variable Enable_CUDA_Device_Expansion.
+       * switch-b.adb: When "-d_c" switch is encountered, check that the next
+       character is an "'='; use the remaining characters to initialize
+       Opt.CUDA_Device_Library_Name.
+       * bindgen.adb: Remove (for now) most support for host-side invocation of
+       device-side finalization. Make use of the new CUDA_Device_Library_Name
+       in determining the string used to refer (on the host side) to the
+       device-side initialization procedure. Declare the placeholder routine
+       that is named in the CUDA_Execute pragma (and the CUDA_Register_Function
+       call) as an exported null procedure, rather than as an imported procedure.
+       It is not clear whether it is really necessary to specify the link-name
+       for this should-never-be-called subprogram on the host side, but for now it
+       shouldn't hurt to do so.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch6.adb (Expand_Protected_Subprogram_Call): Examine scope
+       tree and not the scope stack.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * mdll.ads (Build_Import_Library): Fix grammar in comment.
+       * mdll.adb (Build_Import_Library): Directly execute code of a
+       nested routine; rename No_Lib_Prefix to Strip_Lib_Prefix.
+
+2022-11-07  Bob Duff  <duff@adacore.com>
+
+       * sem_warn.adb
+       (Check_For_Warnings): Remove unnecessary exception handler.
+       (Warn_On_Known_Condition): Suppress warning when we detect a True
+       or False that has been turned into a more complex expression
+       because True is represented as "nonzero". (Note that the complex
+       expression will subsequently be constant-folded to a Boolean True
+       or False). Also simplify to always print "condition is always ..."
+       instead of special-casing object names. The special case was
+       unhelpful, and indeed wrong when the expression is a literal.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * checks.adb (Safe_To_Capture_In_Parameter_Value): Remove.
+       * sem_util.adb (Safe_To_Capture_Value): Stop search at the current
+       body.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_warn.adb (Warn_On_In_Out): Remove No_ prefix; flip return
+       values between True and False; adapt caller.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Add_Call): Just look at Instantiation_Depth.
+       * sem_ch3.adb (Derive_Subprograms): Likewise.
+       * sem_warn.adb (Check_References): Remove redundant filtering with
+       Instantiation_Depth that follows filtering with
+       Instantiation_Location.
+       * sinput.adb (Instantiation_Depth): Reuse Instantiation_Location.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_warn.adb
+       (No_Warn_On_In_Out): For subprograms we can simply call
+       Warnings_Off.
+       (Output_Non_Modified_In_Out_Warnings): Remove repeated
+       suppression.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb (Resolve_Delta_Array_Aggregate): Reject boxes in
+       delta array aggregates.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_res.adb (Enclosing_Declaration_Or_Statement): Moved to
+       Sem_Util.
+       * sem_util.ads (Enclosing_Declaration_Or_Statement): Moved from
+       Sem_Res.
+       * sem_util.adb (Enclosing_Declaration_Or_Statement): Likewise.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_res.adb (Resolve): Only call Comes_From_Predefined_Lib_Unit
+       when its result might be needed.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch12.adb (Check_Generic_Actuals): Remove redundant parens;
+       refactor an excessive if-statement; remove repeated call to Node.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * inline.adb (Establish_Actual_Mapping_For_Inlined_Call): Move
+       comment next to a condition that it describes.
+
+2022-11-07  Steve Baird  <baird@adacore.com>
+
+       * exp_put_image.adb
+       (Image_Should_Call_Put_Image): Correctly handle the case of an
+       inherited Put_Image aspect specification for a scalar type.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * libgnarl/s-interr.adb: Tune whitespace.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * libgnarl/s-interr.adb: Reorder context items and pragmas.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch4.adb
+       (Expand_Modular_Addition): Rewrite using Make_XXX calls.
+       (Expand_Modular_Op): Likewise.
+       (Expand_Modular_Subtraction): Likewise.
+       * exp_imgv.adb
+       (Expand_User_Defined_Enumeration_Image): Likewise.
+
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * checks.adb (Apply_Arithmetic_Overflow_Strict): Rewrite using a
+       newly created operator node.
+       * exp_ch4.adb (Expand_Array_Comparison): Likewise.
+       * exp_ch6.adb (Add_Call_By_Copy_Code): Rewriting actual parameter
+       using its own location and not the location of the subprogram
+       call.
+       * sem_warn.adb (Check_References): Looping with Original_Node is
        no longer needed.
-       * treepr.adb (Image): Adding uppercase image of LSP_Subprogram.
-
-2021-06-18  Arnaud Charlet  <charlet@adacore.com>
-
-       * exp_ch4.adb (Expand_N_Quantified_Expression): Ensure the type
-       of the name of a "for of" loop is frozen.
-       * exp_disp.adb (Check_Premature_Freezing): Complete condition to
-       take into account a private type completed by another private
-       type now that the freezing rule are better implemented.
-       * freeze.adb (Freeze_Entity.Freeze_Profile): Do not perform an
-       early freeze on types if not in the proper scope. Special case
-       expression functions that requires access to the dispatch table.
-       (Should_Freeze_Type): New.
-       * sem_ch13.adb (Resolve_Aspect_Expressions): Prevent assert
-       failure in case of an invalid tree (previous errors detected).
-       * sem_res.adb (Resolve): Remove kludge related to entities
-       causing incorrect premature freezing.
-       * sem_util.adb (Ensure_Minimum_Decoration): Add protection
-       against non base types.
-
-2021-06-18  Gary Dismukes  <dismukes@adacore.com>
-
-       * sem_ch3.adb (Constrain_Index): Set the High_Bound of a
-       fixed-lower-bound subtype's range to T (the subtype of the FLB
-       index being constrained) rather than Base_Type (T).
-
-2021-06-18  Bob Duff  <duff@adacore.com>
-
-       * ada_get_targ.adb, aspects.ads, checks.adb, cstand.adb,
-       einfo.ads, exp_attr.adb, freeze.adb, get_targ.adb,
-       libgnat/a-textio.ads, libgnat/g-memdum.ads,
-       libgnat/s-scaval__128.adb, libgnat/s-scaval.adb, make.adb,
-       osint.ads, par-prag.adb, sem_ch13.adb, sem_prag.adb,
-       sem_prag.ads, set_targ.adb, set_targ.ads, snames.ads-tmpl,
-       targparm.ads, types.ads: Remove AAMP-specific code.
-       * switch.ads: Minor reformatting.
-       * gen_il-fields.ads, gen_il-gen.adb,
-       gen_il-gen-gen_entities.adb, gen_il-types.ads, einfo-utils.adb,
-       einfo-utils.ads: Package Types now contains "type Float_Rep_Kind
-       is (IEEE_Binary);", which used to also have an enumeral AAMP.
-       Gen_IL can't handle fields of this type, which would be zero
-       sized. Therefore, we move the Float_Rep field into Einfo.Utils
-       as a synthesized attribute. (We do not delete the field
-       altogether, in case we want new floating-point representations
-       in the future.)
-       * doc/gnat_rm/implementation_defined_pragmas.rst,
-       doc/gnat_rm/implementation_defined_aspects.rst,
-       doc/gnat_ugn/building_executable_programs_with_gnat.rst,
-       doc/gnat_ugn/the_gnat_compilation_model.rst: Remove
-       AAMP-specific documentation.
-       * gnat_rm.texi, gnat_ugn.texi: Regenerate.
 
-2021-06-18  Gary Dismukes  <dismukes@adacore.com>
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Is_In_Context_Clause): Rewrite without negations
+       and inequalities.
 
-       * exp_util.adb (Expand_Sliding_Conversion): Move test of
-       Is_Fixed_Lower_Bound_Subtype to an assertion. Exclude string
-       literals from sliding expansion.
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
+       * sem_prag.adb (Analyze_Pragma [Pragma_Obsolescent]): Reject
+       misplaced pragma.
 
-       * sem_warn.adb (Warn_On_Overlapping_Actuals): Cleanup conditions
-       related to Ada_Version.
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
+       * sem_warn.adb (Output_Obsolescent_Entity_Warnings): Tag warnings
+       about obsolescent functions just like we tag similar warnings for
+       packages and procedures.
 
-       * sem_util.adb (Address_Value): Simplify.
+2022-11-07  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-06-18  Bob Duff  <duff@adacore.com>
+       * exp_attr.adb (Expand_N_Attribute_Reference): Remove useless
+       skipping for attribute Input.
 
-       * sem_attr.adb (Check_Array_Or_Scalar_Type): Use Expr_Value
-       instead of Intval, because the latter only exists in literals.
-       Remove Set_Etype on E1; setting the type is done elsewhere.
+2022-11-04  Justin Squirek  <squirek@adacore.com>
 
-2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
+       * exp_attr.adb (Expand_N_Attribute_Reference): Skip operand
+       validity checks for attributes Has_Same_Storage and
+       Overlaps_Storage.
 
-       * sem_warn.adb (Warn_On_Overlapping_Actuals): Examine types of
-       both formal parameters; refactor a complex detection of
-       by-reference types.
+2022-11-04  Eric Botcazou  <ebotcazou@adacore.com>
 
-2021-06-18  Arnaud Charlet  <charlet@adacore.com>
+       * errout.adb (Remove_Warning_Messages.Check_For_Warning): Do not
+       reinstate the Original_Node in the tree.
+       * exp_aggr.adb (Build_Array_Aggr_Code.Gen_Loop): Copy the bounds
+       on all paths.
 
-       * gnatcmd.adb: Fix handling of check and test commands.
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-06-18  Gary Dismukes  <dismukes@adacore.com>
+       * libgnat/g-excact.ads
+       (Register_Global_Action): Refill comment.
+       (Name_To_Id): Change pragma Restriction from singular to plural.
 
-       * doc/gnat_rm/implementation_defined_pragmas.rst: Add
-       documentation for the array fixed-lower-bound feature.
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_warn.adb (Check_References): Remove redundant guard, as it
+       is implied by a preceding call to Referenced_Check_Spec.
+
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_warn.adb (Check_References): Remove useless query for "spec"
+       of a variable; refactor nested if-statements into a single
+       condition.
+
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb
+       (In_Pragma_Expression): Add standard guard against searching too
+       far.
+       (In_Quantified_Expression): Likewise.
+       * sem_warn.adb
+       (May_Need_Initialized_Actual): Remove redundant parens.
+       (Check_References): Remove guard that duplicates a condition from
+       the enclosing if-statement; only assign E1T variable when
+       necessary.
+       (Within_Postcondition): Fix layout.
+       (No_Warn_On_In_Out): Balance parens in comment.
+
+2022-11-04  Steve Baird  <baird@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Add the standard
+       '... "On" enables this extension.' sentence to the description of
+       static intrinsic functions.
+       * sem_ch13.adb
+       (Analyze_Aspect_Spec): In the call to Error_Msg_GNAT_Extension for
+       a Static aspect specification for an intrinsic function, specify
+       Is_Core_Extension => True.
+       * sem_eval.adb
+       (Eval_Intrinsic_Call): Test Core_Extensions_Allowed instead of
+       testing All_Extensions_Allowed.
        * gnat_rm.texi: Regenerate.
 
-2021-06-18  Bob Duff  <duff@adacore.com>
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * aspects.adb (Relocate_Aspect): Remove call to Set_Has_Aspects.
+       * sem_ch12.adb (Analyze_Formal_Package_Declaration): Likewise.
+       * sem_util.adb (Copy_Ghost_Aspect, Copy_SPARK_Mode_Aspect):
+       Likewise.
+
+2022-11-04  Javier Miranda  <miranda@adacore.com>
+
+       * exp_intr.adb
+       (Expand_Dispatching_Constructor_Call): Report an error on
+       unsupported dispatching constructor calls and report a warning on
+       calls that may fail at run time.
+
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb
+       (Check_Components): Iterate using
+       First/Next_Component_Or_Discriminant.
+       (Has_Preelaborable_Initialization): Avoid repeated iteration with
+       calls to Check_Components with First_Entity and
+       First_Private_Entity.
+       (Is_Independent_Object_Entity): Tune indentation.
+
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch7.adb (Clear_Constants): Only iterate from First_Entity
+       through Next_Entity; only examine variables because packages have
+       no assignable formal parameters.
+
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
+       typos.
+       * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Fix typos
+       and refill as necessary; remove trailing whitespace.
+       * doc/gnat_ugn/gnat_and_program_execution.rst: Fix typos.
+       * gnat_ugn.texi: Regenerate.
+
+2022-11-04  Marc Poulhiès  <poulhies@adacore.com>
+
+       * sem_util.ads (Add_Block_Identifier): Add new extra Scope
+       argument.
+       * sem_util.adb (Add_Block_Identifier): Likewise and use this scope
+       variable instead of Current_Scope.
+       * exp_util.adb (Wrap_Statements_In_Block): Add new scope argument
+       to Add_Block_Identifier call.
+
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb (Kill_Current_Values): Only iterate from
+       First_Entity through Next_Entity.
+
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch6.adb (Controlling_Formal): Iterate with First/Next_Formal
+       and not with First/Next_Entity.
+
+2022-11-04  Javier Miranda  <miranda@adacore.com>
 
-       * debug.adb: Document switch.
-       * exp_aggr.adb: If -gnatd_g was given, then do not bump the
-       limit to 500_000.
+       * exp_disp.adb
+       (Expand_Interface_Conversion): Fix typo in comment.
 
-2021-06-18  Bob Duff  <duff@adacore.com>
+2022-11-04  Javier Miranda  <miranda@adacore.com>
 
-       * sem_util.ads, sem_util.adb (Has_Access_Values): Remove
-       Include_Internal parameter that was added in previous change.
-       * sem_warn.adb (Warnings_Off_E1): Back out E_Out_Parameter ==>
-       Formal_Kind change made previously. Check Is_Private_Type to
-       avoid warnings on private types. Misc cleanup.
-       * sem_attr.adb (Attribute_Has_Access_Values): Remove
-       Include_Internal parameter.
+       * exp_disp.adb
+       (Expand_Interface_Conversion): Under configurable runtime, when
+       the target type is an interface that is an ancestor of the operand
+       type, skip generating code to displace the pointer to reference
+       the target dispatch table.
+       * sem_disp.adb
+       (Propagate_Tag): Handle class-wide types when checking for the
+       addition of an implicit interface conversion.
 
-2021-06-18  Piotr Trojanek  <trojanek@adacore.com>
+2022-11-04  Ronan Desplanques  <desplanques@adacore.com>
 
-       * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove dead branch
-       for overlapping actuals in prefix notation.
+       * doc/gnat_rm/standard_library_routines.rst: Fix typo.
+       * gnat_rm.texi: Regenerate.
+
+2022-11-04  Ghjuvan Lacambre  <lacambre@adacore.com>
 
-2021-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+       * sa_messages.ads, sa_messages.adb: Remove files.
 
-       * sem_prag.adb (Process_Import_Or_Interface): Do not
-       artificially record a possible modification for a constant.
+2022-11-04  Ghjuvan Lacambre  <lacambre@adacore.com>
 
-2021-06-18  Arnaud Charlet  <charlet@adacore.com>
+       * checks.adb, exp_atag.adb, exp_attr.adb, exp_ch4.adb, exp_ch6.adb,
+       exp_ch7.adb, exp_dbug.adb, exp_disp.adb, exp_unst.adb, exp_util.adb,
+       freeze.adb, layout.adb, pprint.adb, rtsfind.adb, sem_aggr.adb,
+       sem_attr.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
+       sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_dim.adb, sem_prag.adb,
+       sem_util.adb, sem_warn.adb:
+       Replace uses of `not Present (X)` with `No (X)`.
 
-       * exp_ch6.adb (Expand_Call_Helper): Code cleanups.
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-06-18  Arnaud Charlet  <charlet@adacore.com>
+       * einfo.ads: Fix typos in comments; refill as necessary.
+       * sinfo.ads: Likewise.
 
-       * exp_aggr.adb, exp_dist.adb, exp_unst.adb, sa_messages.ads,
-       sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_eval.adb,
-       sem_util.adb, sem_util.ads, sinfo.ads: Update comments.
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-06-18  Ghjuvan Lacambre  <lacambre@adacore.com>
+       * doc/gnat_rm/implementation_defined_aspects.rst: Fix typos.
+       * doc/gnat_rm/implementation_defined_attributes.rst: Likewise
+       * doc/gnat_rm/implementation_defined_characteristics.rst: Likewise
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Likewise
+       * doc/gnat_rm/standard_library_routines.rst: Likewise.
+       * gnat_rm.texi: Regenerate.
 
-       * back_end.adb (Scan_Back_End_Switches): Set Opt.JSON_Output to
-       True if -fdiagnostics-format=json option is found.
-       * back_end.ads (Scan_Compiler_Arguments): Mention
-       Opt.JSON_Output.
-       * errout.adb (Output_JSON_Message): New procedure.
-       (Output_Messages): If Opt.JSON_Output is True, print messages
-       with new Output_JSON_Message procedure.
-       * opt.ads: Declare JSON_Output variable.
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch8.adb (Restore_Scope_Stack): Remove elements from the head
+       and not the tail of an element list.
+
+2022-11-04  Ronan Desplanques  <desplanques@adacore.com>
+
+       * sinfo.ads: Small editorial changes.
+
+2022-11-04  Steve Baird  <baird@adacore.com>
+
+       * opt.ads: Replace Ada_Version_Type enumeration literal
+       Ada_With_Extensions with two literals, Ada_With_Core_Extensions
+       and Ada_With_All_Extensions. Update uses of the deleted literal.
+       Replace Extensions_Allowed function with two functions:
+       All_Extensions_Allowed and Core_Extensions_Allowed.
+       * errout.ads, errout.adb: Add Boolean parameter to
+       Error_Msg_GNAT_Extension to indicate whether the construct in
+       question belongs to the curated subset.
+       * exp_ch5.adb, par-ch4.adb, sem_case.adb, sem_ch3.adb:
+       * sem_ch4.adb, sem_ch5.adb, sem_ch8.adb: Replace calls to
+       Extensions_Allowed with calls to Core_Extensions_Allowed for
+       constructs that are in the curated subset.
+       * sem_attr.adb, sem_ch13.adb, sem_eval.adb, sem_util.adb: Replace
+       calls to Extensions_Allowed with calls to All_Extensions_Allowed
+       for constructs that are not in the curated subset.
+       * par-ch3.adb: Override default for new parameter in calls to
+       Error_Msg_GNAT_Extension for constructs in the curated subset.
+       * par-prag.adb: Add Boolean parameter to Check_Arg_Is_On_Or_Off to
+       also allow ALL. Set Opt.Ada_Version appropriately for ALL or ON
+       arguments.
+       * sem_prag.adb: Allowed ALL argument for an Extensions_Allowed
+       pragma. Set Opt.Ada_Version appropriately for ALL or ON arguments.
+       * switch-c.adb: The -gnatX switch now enables only the curated
+       subset of language extensions (formerly it enabled all of them);
+       the new -gnatX0 switch enables all of them.
        * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
-       Mention new -fdiagnostics-format option.
-       * gnat_ugn.texi: Regenerate.
+       Document new "-gnatX0" switch and update documentation for
+       "-gnatX" switch.
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Document new ALL
+       argument for pragma Extensions_Allowed and update documentation
+       for the ON argument. Delete mention of Ada 2022 Reduce attribute
+       as an extension.
+       * gnat_rm.texi, gnat_ugn.texi: Regenerate.
 
-2021-06-18  Arnaud Charlet  <charlet@adacore.com>
-
-       * sem_ch6.adb (Null_Exclusions_Match): Relax null exclusion
-       mismatch check when Relaxed_RM_Semantics is set.
-
-2021-06-18  Arnaud Charlet  <charlet@adacore.com>
-
-       * fe.h, opt.adb, opt.ads, par-prag.adb, sem_prag.adb,
-       switch-c.adb (Extensions_Allowed): Replace by a function.
-       (Ada_Version_Type): Add new value Ada_With_Extensions, to
-       replace setting of Extensions_Allowed.  Update setting of
-       Extensions_Allowed.
-
-2021-06-18  Arnaud Charlet  <charlet@adacore.com>
-
-       * bindgen.adb (Gen_Output_File_Ada): Generate a new constant
-       GNAT_Version_Address.
-       * libgnat/g-comver.adb (GNAT_Version_Address): New;
-       (GNAT_Version): Use GNAT_Version_Address to disable LTO warning.
-
-2021-06-18  Javier Miranda  <miranda@adacore.com>
-
-       * einfo.ads (Is_Ada_2022_Only): Adding documentation.
-       * gen_il-fields.ads (Is_Ada_2022_Only): New flag.
-       * gen_il-gen-gen_entities.adb (Is_Ada_2022_Only): New flag.
-       * itypes.adb (Create_Null_Excluding_Itype): Inherit
-       Is_Ada_2022_Only.
-       * sem_ch3.adb (Check_Abstract_Overriding): Skip reporting error
-       on Ada 2022 only subprograms that require overriding if we are
-       not in Ada 2022 mode.
-       (Derive_Subprogram): Inherit Is_Ada_2022_Only.
-       * sem_ch6.adb (Check_Overriding_Indicator): Inherit
-       Is_Ada_2022_Only.
-       (New_Overloaded_Entity): Inherit Is_Ada_2022_Only.
-       * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Inherit
-       Is_Ada_2022_Only.
-       (Preserve_Full_Attributes): Inherit Is_Ada_2022_Only.
-       * sem_disp.adb (Find_Hidden_Overridden_Primitive): Inherit
-       Is_Ada_2022_Only.
-       (Override_Dispatching_Operation): Inherit Is_Ada_2022_Only.
-       * sem_prag.adb (Analyze_Pragma): Allow form with argument for
-       Ada 2022.
-       * sem_type.adb: (Disambiguate): Deal with Is_Ada_2022_Only
-       * lib-xref.adb (Generate_Reference): Error on static and
-       dispatching calls to Ada 2022 subprograms that require
-       overriding if we are not in Ada 2022 mode; warn on other
-       references to Ada 2022 entities when not in Ada 2022 mode.
-       * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Inherit
-       Ada_2020_Only.
-       * libgnat/a-cdlili.ads (Empty): Adding pragma Ada_2022.
-       * libgnat/a-cidlli.ads (Empty): Adding pragma Ada_2022.
-       * libgnat/a-ciorma.ads (Empty): Adding pragma Ada_2022.
-       * libgnat/a-cobove.ads (Empty): Adding pragma Ada_2022.
-       * libgnat/a-coorma.ads (Empty): Adding pragma Ada_2022.
-       (New_Vector): Adding pragma Ada_2022.
-       (Insert_Vector): Adding pragma Ada_2022.
-       (Prepend_Vector): Adding pragma Ada_2022.
-       (Append_Vector): Adding pragma Ada_2022.
-
-2021-06-17  Arnaud Charlet  <charlet@adacore.com>
-
-       * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Protect against
-       no Primitive_Operations.
-
-2021-06-17  Vadim Godunko  <godunko@adacore.com>
-
-       * libgnat/a-strunb__shared.ads (Allocate): Additional parameter
-       to provide additional amount of space to be allocated.
-       * libgnat/a-strunb__shared.adb (Aligned_Max_Length): Limit
-       length to Natural'Last when requested length is larger than it.
-       (Allocate): Merge two slightly different implementations into
-       one.
-
-2021-06-17  Gary Dismukes  <dismukes@adacore.com>
-
-       * checks.adb (Discrete_Range_Cond): For an index subtype that
-       has a fixed lower bound, require that the range's lower bound
-       match that of the subtype.
-       (Selected_Range_Checks): Warn about the case where a static
-       lower bound does not equal an index subtype's fixed lower bound.
-       * einfo.ads (Is_Fixed_Lower_Bound_Array_Subtype,
-       Is_Fixed_Lower_Bound_Index_Subtype): Document new entity flag.
-       * exp_ch4.adb (Expand_N_Type_Conversion): If the operand is of
-       an unconstrained array subtype with fixed lower bound, then
-       Expand_Sliding_Conversion is applied to the operand.
-       * exp_ch6.adb (Expand_Simple_Function_Return): If the result
-       subtype is an unconstrained array subtype with fixed lower
-       bound, then Expand_Sliding_Conversion is applied to the return
-       object.
-       * exp_util.ads (Expand_Sliding_Conversion): New procedure for
-       applying a sliding subtype conversion to an array object of a
-       fixed-lower-bound subtype when needed.
-       * exp_util.adb: Add with_clause for Freeze.
-       (Expand_Sliding_Conversion): New procedure for applying a
-       sliding subtype conversion to an array object of a
-       fixed-lower-bound subtype when needed.  It traverses the indexes
-       of the unconstrained array type/subtype to create a target
-       constrained subtype and rewrites the array object to be a
-       conversion to that subtype, when there's at least one index
-       whose lower bound does not statically match the fixed-lower
-       bound of the target subtype.
-       * gen_il-fields.ads (type Opt_Field_Enum): Add literals
-       Is_Fixed_Lower_Bound_Array_Subtype and
-       Is_Fixed_Lower_Bound_Index_Subtype for new flags on type
-       entities.
-       * gen_il-gen-gen_entities.adb: Add calls to
-       Create_Semantic_Field for the new fixed-lower-bound flags on
-       type entities.
-       * par-ch3.adb (P_Array_Type_Definition): Add handling for
-       parsing of fixed-lower-bound index ranges in unconstrained array
-       types. Report an error if such an index is encountered and GNAT
-       language extensions are not enabled.
-       (P_Index_Subtype_Def_With_Fixed_Lower_Bound): Support procedure
-       for parsing unconstrained index ranges.
-       (P_Index_Or_Discriminant_Constraint): Add handling for parsing
-       of index constraints that specify ranges with fixed lower
-       bounds. Report an error if such an index is encountered and GNAT
-       language extensions are not enabled.
-       * sem_ch3.adb (Analyze_Object_Declaration): If the object's
-       nominal subtype is an array subtype with fixed lower bound, then
-       Expand_Sliding_Conversion is applied to the object.
-       (Array_Type_Declaration): Mark the array type and the subtypes
-       of any indexes that specify a fixed lower bound as being
-       fixed-lower-bound subtypes, and set the High_bound of the range
-       of such an index to the upper bound of the named subtype.
-       (Constrain_Array): For an array subtype with one or more index
-       ranges specifying a fixed lower bound, set Is_Constrained to
-       False and set the array subtype's
-       Is_Fixed_Lower_Bound_Array_Subtype flag to True.
-       (Constrain_Index): Mark the subtypes of an index that specifies
-       a fixed lower bound as being a fixed-lower-bound index subtype,
-       and set the High_bound of the range of such an index to the
-       upper bound of the base type of the array type's corresponding
-       index.
-       * sem_res.adb (Resolve_Actuals): If a formal is of an
-       unconstrained array subtype with fixed lower bound, then
-       Expand_Sliding_Conversion is applied to the actual.
-       * sem_util.adb (Build_Actual_Subtype): If the actual subtype
-       corresponds to an unconstrained array subtype having any indexes
-       with fixed lower bounds, then set the lower bounds of any such
-       indexes of the actual subtype to the appropriate fixed lower
-       bound of the formal subtype (rather than taking it from the
-       formal itself).
-       * sprint.adb (Sprint_Node_Actual, case N_Range): If a range's
-       Etype has a fixed lower bound, then print "<>" rather than the
-       High_Bound of the range.
-
-2021-06-17  Bob Duff  <duff@adacore.com>
-
-       * sem_util.adb, sem_util.ads (Has_Access_Values): New formal
-       Include_Internal to indicate whether internal types should be
-       included.
-       * sem_warn.adb (Check_References): Change E_Out_Parameter to
-       Formal_Kind, to match the comment about Spec_Entity.  Pass
-       Include_Internal => False to Has_Access_Values, so that we warn
-       on types with access values that happen to be in internal types,
-       such as Unbounded_String.
-       * sem_attr.adb (Attribute_Has_Access_Values): Pass
-       Include_Internal => True to Has_Access_Values, to preserve
-       existing behavior.
-       * libgnat/g-rewdat.adb (Do_Output): Change B from 'in out' to
-       'in', to avoid warning enabled by the change to sem_warn.adb.
-       * libgnat/s-objrea.adb (Check_Read_Offset): Change S from 'in
-       out' to 'in', to avoid warning enabled by the change to
-       sem_warn.adb.
-
-2021-06-17  Steve Baird  <baird@adacore.com>
+2022-11-04  Steve Baird  <baird@adacore.com>
 
-       * exp_ch5.adb
-       (Expand_N_Case_Statement.Expand_General_Case_Statement): New
-       subprogram.
-       (Expand_N_Case_Statement): If extensions are allowed and the
-       case selector is not of a discrete type, then call
-       Expand_General_Case_Statement to generate expansion instead of
-       flagging the non-discrete selector as an error.
-       * sem_case.ads (Is_Case_Choice_Pattern): New Boolean-valued
-       function for testing whether a given expression occurs as part
-       of a case choice pattern.
-       * sem_case.adb (Composite_Case_Ops): New package providing
-       support routines for the new form of case statements. This
-       includes a nested package, Composite_Case_Ops.Value_Sets, which
-       encapsulates the "representative values" implementation of
-       composite value sets.
-       (Check_Choices.Check_Case_Pattern_Choices): New procedure for
-       semantic checking of non-discrete case choices. This includes
-       the checks pertaining to coverage and overlapping.
-       (Check_Choices.Check_Composite_Case_Selector): New procedure for
-       semantic checking of non-discrete case selectors.
-       (Check_Choices): If extensions are allowed then a non-discrete
-       selector type no longer implies that an error must have been
-       flagged earlier.  Instead of simply returning, call
-       Check_Composite_Case_Selector and Check_Case_Pattern_Choices.
-       (Is_Case_Choice_Pattern): Body of new function declared in
-       sem_case.ads .
-       * sem_ch5.adb (Analyze_Case_Statement): If extensions are
-       allowed, then we can't use RM 5.4's "The selecting_expression is
-       expected to be of any discrete type" name resolution rule.
-       Handle the case where the type of the selecting expression is
-       not discrete, as well as the new ambiguous-name-resolution error
-       cases made possible by this change.
-       * sem_res.adb (Resolve_Entity_Name): It is ok to treat the name
-       of a type or subtype as an expression if it is part of a case
-       choice pattern, as in "(Field1 => Positive, Field2 => <>)".
-       * exp_aggr.adb (Expand_Record_Aggregate): Do not expand case
-       choice aggregates.
-       * gen_il-fields.ads: Define two new node attributes,
-       Binding_Chars and Multidefined_Bindings.
-       * gen_il-gen-gen_nodes.adb: The new Multidefined_Bindings
-       attribute is Boolean-valued and may be set on
-       N_Case_Statement_Alternative nodes. The new Binding_Chars
-       attribute is Name_Id-valued and may be set on
-       N_Component_Association nodes.
-       * par-ch4.adb (P_Record_Or_Array_Component_Association): When
-       parsing a component association, check for both new syntax forms
-       used to specify a bound value in a case-choice aggregate.  In
-       the case of a box value, an identifier may occur within the box,
-       as in "Foo => <Abc>" instead of "Foo => <>". In the more general
-       case, an expression (or a box) may be followed by "is
-       <identifier>", as in
-       "Foo => Bar is Abc" instead of just "Foo => Bar".
-       * sem_aggr.adb (Resolve_Record_Aggregate): Do not transform box
-       component values in a case-choice aggregate.
-       * sinfo.ads: Provide comments for the new attributes added in
-       gen_il-fields.ads.
-       * doc/gnat_rm/implementation_defined_pragmas.rst: Describe this
-       new feature in documentation for pragma Extensions_Allowed.
+       * bindgen.adb: Introduce two new string constants for the names of
+       the C-String variables that are assigned the names for adainit and
+       adafinal. Replace string literals in Gen_CUDA_Init with references
+       to these constants. In Gen_CUDA_Defs, generate C-String variable
+       declarations where these constants are the names of the variables.
+
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch9.adb (Satisfies_Lock_Free_Requirements): Ignore
+       references to global variables inserted due to pragma
+       Initialize_Scalars.
+
+2022-11-04  Cedric Landet  <landet@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Remove VxWorks
+       version 6.
+       * gnat_rm.texi, gnat_ugn.texi: Regenerate.
+
+2022-11-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch9.adb (Satisfies_Lock_Free_Requirements): Detect
+       references via expanded names.
+
+2022-11-04  Steve Baird  <baird@adacore.com>
+
+       * bindgen.adb
+       (Gen_CUDA_Init): Move existing loop body into a new local
+       procedure, Gen_CUDA_Register_Function_Call, and replace that loop
+       body with a call to this procedure. This first part is just
+       semantics-preserving refactoring. The second part is to add
+       Gen_CUDA_Register_Function_Call calls after the loop for the
+       device-side adainit and adafinal procedures.
+
+2022-10-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/system-linux-sparc.ads (Support_Atomic_Primitives): New
+       constant set to True.
+
+2022-10-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/ada-tree.def (LOAD_EXPR): New expression code.
+       * gcc-interface/gigi.h (build_storage_model_load): Declare.
+       (build_storage_model_store): Likewise.
+       (instantiate_load_in_expr): Likewise.
+       (INSTANTIATE_LOAD_IN_EXPR): New macro.
+       (instantiate_load_in_array_ref): Declare.
+       * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Record_Type>: Set a
+       fake discriminant number on the fields of the template type.
+       (gnat_to_gnu_field): Use integer for DECL_DISCRIMINANT_NUMBER.
+       * gcc-interface/misc.cc (gnat_init_ts): Mark LOAD_EXPR as typed.
+       * gcc-interface/trans.cc (fold_constant_decl_in_expr) <ARRAY_REF>:
+       Also preserve the 4th operand.
+       (Attribute_to_gnu): Deal with LOAD_EXPR of unconstrained array type.
+       <Attr_Size>: Call INSTANTIATE_LOAD_IN_EXPR for a storage model.
+       <Attr_Length>: Likewise.
+       <Attr_Bit_Position>: Likewise.
+       (get_storage_model): New function.
+       (get_storage_model_access): Likewise.
+       (storage_model_access_required_p): Likewise.
+       (Call_to_gnu): Add GNAT_STORAGE_MODEL parameter and deal with it.
+       Also deal with actual parameters that have a storage model.
+       (gnat_to_gnu) <N_Object_Declaratio>: Adjust call to Call_to_gnu.
+       <N_Explicit_Dereference>: Deal with a storage model access.
+       <N_Indexed_Component>: Likewise.
+       <N_Slice>: Likewise.
+       <N_Selected_Component>: Likewise.
+       <N_Assignment_Statement>: Adjust call to Call_to_gnu.  Deal with a
+       storage model access either on the LHS, on the RHS or on both.
+       <N_Function_Cal>: Adjust call to Call_to_gnu.
+       <N_Free_Statement>: Deal with a pool that is a storage model.
+       Replace test for UNCONSTRAINED_ARRAY_REF with test on the type.
+       (gnat_gimplify_expr) <CALL_EXPR>: Tidy up.
+       <LOAD_EXPR>: New case.
+       <UNCONSTRAINED_ARRAY_REF>: Move down.
+       * gcc-interface/utils.cc (maybe_unconstrained_array): Deal with a
+       LOAD_EXPR by recursing on its first operand.
+       * gcc-interface/utils2.cc (build_allocator): Deal with a pool that
+       is a storage model.
+       (build_storage_model_copy): New function.
+       (build_storage_model_load): Likewise.
+       (build_storage_model_store): Likewise.
+       (instantiate_load_in_expr): Likewise.
+       (instantiate_load_in_array_ref): Likewise.
+       (gnat_rewrite_reference) <ARRAY_REF>: Also preserve the 4th operand.
+       (get_inner_constant_reference) <ARRAY_REF>: Remove useless test.
+       (gnat_invariant_expr) <ARRAY_REF>: Rewrite test.
+
+2022-10-06  Steve Baird  <baird@adacore.com>
+
+       * sem_ch6.adb
+       (Analyze_Procedure_Call): Replace "return;" with "goto Leave;", as
+       per comment preceding body of Analyze_Procedure_Call.
+
+2022-10-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch9.adb (Allows_Lock_Free_Implementation): Reject
+       conditional goto statements.
+
+2022-10-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst
+       (Lock_Free): Remove inconsistent periods that end item
+       descriptions.
+       * sem_ch9.adb
+       (Allows_Lock_Free_Implementation): Remove unnecessary guard
+       against an empty list of parameters; replace low-level entity kind
+       membership test with a high-level query; refill error message.
+       * gnat_rm.texi: Regenerate.
+
+2022-10-06  Alexandre Oliva  <oliva@adacore.com>
+
+       * doc/gnat_rm/security_hardening_features.rst: Add examples of
+       codegen changes in hardened conditionals.
+       * gnat_rm.texi: Regenerate.
+
+2022-10-06  Alexandre Oliva  <oliva@adacore.com>
+
+       * doc/gnat_rm/security_hardening_features.rst: Add examples of
+       codegen changes in hardened booleans. Mention that C traps where
+       Ada raises exceptions.
+       * gnat_rm.texi: Regenerate.
+
+2022-10-06  Alexandre Oliva  <oliva@adacore.com>
+
+       * doc/gnat_rm/security_hardening_features.rst: Add examples of
+       codegen changes in stack scrubbing.
        * gnat_rm.texi: Regenerate.
 
-2021-06-17  Arnaud Charlet  <charlet@adacore.com>
+2022-10-06  Piotr Trojanek  <trojanek@adacore.com>
 
-       * exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action):
-       Do not abandon processing on a nested N_Expression_With_Actions
-       or N_Loop_Statement, otherwise we may miss some transient
+       * exp_ch9.adb (Build_Lock_Free_Protected_Subprogram_Body): Replace
+       shallow copy of protected statements with a deep copy.
+
+2022-10-06  Marc Poulhiès  <poulhies@adacore.com>
+
+       * fe.h (Has_Storage_Model_Type_Aspect)
+       (Has_Designated_Storage_Model_Aspect, Storage_Model_Object)
+       (Storage_Model_Copy_From, Storage_Model_Copy_To): Add
        declarations.
+       * sem_util.ads: Add WARNING markers for functions for which a new
+       C declaration has been added in fe.h
+
+2022-10-06  Steve Baird  <baird@adacore.com>
+
+       * exp_util.adb
+       (Get_Current_Value_Condition): Treat references occurring within
+       the condition of an if statement, an elsif, or a while loop in the
+       same way as references that occur before the start of that
+       enclosing construct.
+
+2022-10-06  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch4.adb (Analyze_Call): Add test of Comes_From_Source on the
+       enclosing subprogram's Entity_Id for determining whether to
+       perform the compile-time accessibility check on actuals passed to
+       aliased formals in a function call occurring within a return
+       statement. That test excludes cases where the call occurs within
+       the return statement of a Pre'Class wrapper function.
+
+2022-10-06  Bob Duff  <duff@adacore.com>
+
+       * exp_ch5.adb
+       (Expand_Assign_Array_Loop_Or_Bitfield): Minor cleanups.
+
+2022-10-06  Yannick Moy  <moy@adacore.com>
+
+       * sem_prag.adb (Analyze_Pragma): Ignore one variant of pragma
+       Warnings in GNATprove mode.
+
+2022-10-06  Bob Duff  <duff@adacore.com>
+
+       * exp_ch5.adb
+       (Expand_Assign_Array_Loop_Or_Bitfield): Disable the
+       Fast_Copy_Bitfield optimization in certain cases.
+
+2022-10-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb
+       (Sig_Pragma): Change flag for pragma Refined_State to mean "not
+       significant"; this is primarily for documentation, because the
+       exact value of the flag is not really taken into account for
+       Refined_State.
+       (Is_Non_Significant_Pragma_Reference): Add special handling for
+       pragma Refined_State.
 
-2021-06-17  Arnaud Charlet  <charlet@adacore.com>
+2022-09-29  Ronan Desplanques  <desplanques@adacore.com>
 
-       * exp_util.adb (Find_Hook_Context): Do not stop on an aggregate
-       node.
+       * einfo.ads: remove documentation duplicate
 
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-29  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * sem_util.adb (Is_Valid_Renaming): Check not only indexed
-       components, but slices too.
+       * contracts.adb (Build_Subprogram_Contract_Wrapper): Put back the
+       extended return statement if the result type is built-in-place.
+       * sem_attr.adb (Analyze_Attribute_Old_Result): Also expect an
+       extended return statement.
 
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-29  Bob Duff  <duff@adacore.com>
 
-       * sem_ch3.adb (Analyze_Private_Extension_Declaration): Check
-       No_Wide_Characters restriction after rejecting illegal parent
-       types.
-       (Derived_Type_Declaration): Likewise.
-       (Find_Type_Of_Subtype_Indic): Remove check for
-       No_Wide_Characters restriction, which was done too early.
+       * exp_ch5.adb
+       (Expand_Assign_Array_Loop_Or_Bitfield): Make the checks for
+       volatile and independent objects more precise.
+
+2022-09-29  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb (Collect_Visible_States): Ignore package renamings.
+
+2022-09-26  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_attributes.rst: Rename Valid_Image.
+       * gnat_rm.texi: Regenerate.
+       * gnat_ugn.texi: Regenerate.
+
+2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
+       * sem_ch12.adb (Build_Instance_Compilation_Unit_Nodes): Relocate
+       auxiliary declarations from the original compilation unit to the
+       newly created compilation unit for the spec.
 
-       * sem_util.adb (Is_Valid_Renaming): Body moved from its nested
-       routine.
+2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-06-17  Gary Dismukes  <dismukes@adacore.com>
+       * rtsfind.ads
+       (RTU_Id): Remove unreferenced packages; fix whitespace.
+       (RE_Id): Remove unreferenced entities; add comment about entity
+       that is only used by GNATprove and not by GNAT.
 
-       * sem_ch12.adb (Instantiate_Type): If the actual type for an
-       incomplete formal type is also incomplete, but has a Full_View,
-       use the Full_View of the actual type rather than the incomplete
-       view.
+2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
+       * s-oscons-tmplt.c (STR, STR1): Remove.
+
+2022-09-26  Eric Botcazou  <ebotcazou@adacore.com>
 
        * doc/gnat_ugn/building_executable_programs_with_gnat.rst
-       (-gnatw.I): Remove double period at the end of sentence.
+       (-gnateT): Document new parameter Long_Long_Long_Size.
        * gnat_ugn.texi: Regenerate.
 
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-26  Steve Baird  <baird@adacore.com>
 
-       * sem_util.adb (Denotes_Same_Object): Call Get_Index_Bounds with
-       the range of a slice object, not its type.
+       * bindgen.adb: When the binder is invoked for the device, specify
+       the CUDA_Global aspect for the adainit and adafinal procedures via
+       a pragma instead of via an aspect_specification.
 
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-26  Kévin Le Gouguec  <legouguec@adacore.com>
 
-       * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix style;
-       refactor repeated calls to Nkind; remove early RETURN.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst
+       (Linker Switches): Document support for mold along with gold; add some
+       advice regarding OpenSSL in the Pro version.
+       * gnat_ugn.texi: Regenerate.
 
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-26  Tucker Taft  <taft@adacore.com>
 
-       * sem_warn.adb (Warn_On_Overlapping_Actuals): Ignore formal of
-       generic types, but keep examining other parameters.
+       * sem_util.adb (Original_Aspect_Pragma_Name): Check for Check
+       pragmas.
 
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove dead code.
+       * sem_ch5.adb (Analyze_Iterator_Specification): Delay expansion
+       based on Full_Analysis flag.
 
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove repeated
-       code.
+       * sem_ch5.adb (Analyze_Iterator_Specification): Delay expansion of
+       for iterated component association just like it is done within
+       quantified expression.
 
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
 
-       * checks.adb (Overlap_Check): Replace Set_Casing with
-       Adjust_Name_Case and adapt surrounding code as needed.
+       * contracts.adb (Analyze_Object_Contract): Check SPARK_Mode before
+       applying SPARK rule.
 
-2021-06-17  Arnaud Charlet  <charlet@adacore.com>
+2022-09-26  Justin Squirek  <squirek@adacore.com>
 
-       * libgnat/s-putaim.ads, libgnat/s-putaim.adb: Move...
-       * libgnarl/s-putaim.ads, libgnarl/s-putaim.adb: ... here.
+       * sem_util.adb
+       (Accessibility_Level): Modify indexed and selected components case
+       by reducing the scope where Original_Node gets used.
 
-2021-06-17  Arnaud Charlet  <charlet@adacore.com>
+2022-09-26  Boris Yakobowski  <yakobowski@adacore.com>
 
-       * uintp.ads, uintp.adb (UI_To_Unsigned_64): New.
+       * doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation for
+       gnatmetric.
 
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_prag.adb (Get_Overflow_Mode): Reword error message.
-       * switch-c.adb (Get_Overflow_Mode): Likewise.
+       * gsocket.h: Remove redefinition of _WIN32_WINNT.
+       * mingw32.h: Remove conditional definition of _WIN32_WINNT.
 
-2021-06-17  Richard Kenner  <kenner@adacore.com>
+2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
 
-       * exp_util.adb (Expand_Static_Predicates_In_Choices): Handle
-       Others_Discrete_Choices in N_Others_Choice.
+       * mingw32.h: Remove condition definition of MAXPATHLEN; the include
+       directive for stdlib.h was most likely intended to provide the
+       MAX_PATH.
 
-2021-06-17  Arnaud Charlet  <charlet@adacore.com>
+2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
 
-       * atree.adb: Remove redundant comment with spec.
-       * sem_warn.adb: Fix typo in comment.
+       * adaint.c: Remove conditional #include directives for old MinGW.
+       * cal.c: Always include winsock.h, since it is part of modern
+       MinGW.
+       * cstreams.c: Remove workaround for old MinGW.
+       * expect.c: Remove conditional #include directive for old MinGW.
+       * mingw32.h: Remove STD_MINGW and OLD_MINGW declarations.
+       * sysdep.c: Remove conditional #include directive for old MinGW.
 
-2021-06-17  Arnaud Charlet  <charlet@adacore.com>
+2022-09-26  Piotr Trojanek  <trojanek@adacore.com>
 
-       * atree.adb: Do not suppress checks.
+       * sem_warn.ads (Has_Junk_Name): Reword comment.
 
-2021-06-17  Justin Squirek  <squirek@adacore.com>
+2022-09-20  Martin Liska  <mliska@suse.cz>
 
-       * exp_ch3.adb (Check_Missing_Others): Add comment.
-       (Build_Initialization_Call): Remove inaccurate accessibility
-       comment.
-       * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Remove
-       test for Ada2012.
-       (Analyze_Package_Instantiation): Remove speculative comment.
-       (Inline_Instance_Body): Add comments for loops.
-       (Build_Subprogram_Renaming): Remove comment about fix being
-       partial and "ugly."
-       (Instantiate_Subprogram_Body): Remove comment referencing DEC
-       related internal issue.
-       (Subtypes_Match): Add comment and simplify anonymous access
-       test.
-       (Is_Global): Add test for when E is an expanded name, and
-       calculate the scope accordingly.
-       * sem_ch6.adb (Analyze_Function_Return): Update comment
-       regarding accessibility, and add check for
-       Warn_On_Ada_2012_Compatibility.
-       (Mask_Type_Refs): Add comments.
-       (Analyze_Subprogram_Declaration): Remove mysterious suppression
-       of elaboration checks.
-       * sem_ch7.adb (Preserve_Full_Attributes): Preserve Is_Atomic
-       value.
-       * sem_ch8.adb (Most_Descendant_Use_Clause): Remove comment.
-       (Note_Redundant_Use): Fix calls to Find_First_Use to be
-       Find_Most_Prev.
-       (Get_Object_Name): Modify error message to be more descriptive.
-       (Known_But_Visible): Remove mysterious special case for
-       GNAT_Mode.
-       (Find_First_Use): Removed.
-       (Find_Most_Prev): Renamed from Find_First_Use.
-       * sem_prag.adb (Check_Static_Constraint): Add comments to
-       routine.
-
-2021-06-17  Bob Duff  <duff@adacore.com>
-
-       * treepr.adb (Print_Node): Display the Entity or Associated_Node
-       fields if appropriate.
-       * sinfo-utils.ads (F_Associated_Node, F_Entity): Remove. These
-       are no longer needed.
-
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
-
-       * checks.adb (Apply_Parameter_Aliasing_Checks): Replace calls to
-       Is_Object_Reference with calls to Is_Name_Reference; remove
-       asymmetric condition that only detected an aggregate as the
-       first actual (aggregate objects were just a special case of an
-       object reference that was not a name).
-
-2021-06-17  Bob Duff  <duff@adacore.com>
-
-       * gen_il-gen.adb, gen_il-internals.ads: Generate field
-       enumeration literals with "F_" prefix.  Update all generated
-       references accordingly.
-       * atree.adb, einfo-utils.adb, sem_ch3.adb, sem_ch5.adb,
-       sem_ch6.adb, sem_ch8.adb, sinfo-cn.adb, sinfo-utils.adb,
-       sinfo-utils.ads, treepr.adb: Add "F_" prefix to all uses of the
-       field enumeration literals.
-
-2021-06-17  Arnaud Charlet  <charlet@adacore.com>
-
-       * libgnat/i-c.ads, libgnat/i-cexten.ads,
-       libgnat/i-cexten__128.ads: bool renamed C_bool.
-
-2021-06-17  Piotr Trojanek  <trojanek@adacore.com>
-
-       * sem_ch4.adb (Analyze_Allocator): Reject allocators in
-       restricted contexts.
-
-2021-06-17  Arnaud Charlet  <charlet@adacore.com>
-
-       * gcc-interface/Make-lang.in: Use libgnat.so if libgnat.a cannot
-       be found.
-
-2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
-
-       * sem_util.adb (Is_Volatile_Function): Follow the exact wording
-       of SPARK (regarding volatile functions) and Ada (regarding
-       protected functions).
-
-2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
-
-       * sem_util.adb (Is_OK_Volatile_Context): All references to
-       volatile objects are legal in preanalysis.
-       (Within_Volatile_Function): Previously it was wrongly called on
-       Empty entities; now it is only called on E_Return_Statement,
-       which allow the body to be greatly simplified.
-
-2021-06-16  Yannick Moy  <moy@adacore.com>
-
-       * sem_res.adb (Set_Slice_Subtype): Revert special-case
-       introduced previously, which is not needed as Itypes created for
-       slices are precisely always used.
-
-2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * urealp.adb (Scale): Change first paramter to Uint and adjust.
-       (Equivalent_Decimal_Exponent): Pass U.Den directly to Scale.
-       * libgnat/s-exponr.adb (Negative): Rename to...
-       (Safe_Negative): ...this and change its lower bound.
-       (Exponr): Adjust to above renaming and deal with Integer'First.
-
-2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
-
-       * sem_res.adb (Flag_Effectively_Volatile_Objects): Detect also
-       allocators within restricted contexts and not just entity names.
-       (Resolve_Actuals): Remove duplicated code for detecting
-       restricted contexts; it is now exclusively done in
-       Is_OK_Volatile_Context.
-       (Resolve_Entity_Name): Adapt to new parameter of
-       Is_OK_Volatile_Context.
-       * sem_util.ads, sem_util.adb (Is_OK_Volatile_Context): Adapt to
-       handle contexts both inside and outside of subprogram call
-       actual parameters.
-       (Within_Subprogram_Call): Remove; now handled by
-       Is_OK_Volatile_Context itself and its parameter.
+       * exp_ch6.adb: Replace "the the" with "the".
+       * sem_ch6.adb: Likewise.
+       * sem_disp.ads: Likewise.
 
-2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-15  Richard Biener  <rguenther@suse.de>
 
-       * sinput.adb (Sloc_Range): Refactor several repeated calls to
-       Sloc and two comparisons with No_Location.
+       * gcc-interface/trans.cc (gigi): Do not initialize void_list_node.
 
-2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * checks.adb (Apply_Scalar_Range_Check): Fix handling of check depending
-       on the parameter passing mechanism.  Grammar adjustment ("has"
-       => "have").
-       (Parameter_Passing_Mechanism_Specified): Add a hyphen in a comment.
+       * gcc-interface/decl.cc (gnat_to_gnu_entity): Relax assertion when
+       front-end unnesting is enabled.
 
-2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-12  Justin Squirek  <squirek@adacore.com>
 
-       * exp_ch3.adb (Build_Slice_Assignment): Remove unused
-       initialization.
+       * sem_util.adb
+       (Innermost_Master_Scope_Depth): Detect and handle case where scope
+       depth is not set on an enclosing scope.
 
-2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-12  Steve Baird  <baird@adacore.com>
 
-       * restrict.adb, sem_attr.adb, types.ads: Fix typos in
-       "occuring"; refill comment as necessary.
+       * bindgen.adb: When the binder is invoked for the host, generate a
+       "with CUDA.Internal;" with clause.
 
-2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_util.ads (Is_Actual_Parameter): Update comment.
-       * sem_util.adb (Is_Actual_Parameter): Also detect entry parameters.
+       * doc/gnat_rm/implementation_defined_pragmas.rst
+       (Pragma Unreferenced): Sync description with
+       Sem_Warn.Has_Junk_Name routine.
+       * gnat_rm.texi: Regenerate.
+       * gnat_ugn.texi: Regenerate.
 
-2021-06-16  Arnaud Charlet  <charlet@adacore.com>
+2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute [Valid_Scalars]): Move check for
+       unchecked union before checks for private and public types.
+
+2022-09-12  Steve Baird  <baird@adacore.com>
+
+       * bindgen.adb: When the binder is invoked for the host, it
+       declares imported subprograms corresponding to the Adainit and
+       Adafinal routines on the device. Declare string constants and
+       expression functions for the Ada source names and the link names
+       of these routines. Generate these subprogram declarations (and
+       accompanying Import pragmas) in Gen_CUDA_Defs. Generate
+       CUDA_Execute pragmas to call these subprograms from the host in
+       Gen_Adafinal and Gen_CUDA_Init. When the binder is invoked for the
+       device, include a CUDA_Global aspect declaration in the
+       declarations of Adainit and Adafinal and use the aforementioned
+       link names in the Export pragmas generated for those two routines.
+       * debug.adb: Update comments about "d_c" and "d_d" switches.
+       * opt.ads: Declare new Boolean variable,
+       Enable_CUDA_Device_Expansion. This complements the existing
+       Enable_CUDA_Expansion variable, which is used to enable host-side
+       CUDA expansion. The new variable enables device-side CUDA
+       expansion. It is currently never set during compilation; it is
+       only set via a binder switch.
+       * switch-b.adb
+       (scan_debug_switches): Add new use of the "-d_d" binder switch.
+       The new switch and the variable Opt.Enabled_CUDA_Device_Expansion
+       follow the existing pattern of the "-d_c" switch and the variable
+       Opt.Enabled_CUDA_Expansion. Flag error if both "-d_c" and "-d_d"
+       are specified.
+
+2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * contracts.adb (Build_Subprogram_Contract_Wrapper): Remove useless
+       local variable. In the case of a function, replace the extended
+       return statement by a block statement declaring a renaming of the
+       call to the local subprogram after removing side effects manually.
+       (Expand_Subprogram_Contract): Adjust description accordingly.
+       * exp_ch6.adb (Expand_Ctrl_Function_Call): Rewrite obsolete
+       comment and do not apply the transformation twice.
+       * sem_attr.adb (Analyze_Attribute_Old_Result): Now expect a block
+       statement instead of an extended return statement.
+
+2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * erroutc.adb (Set_Msg_Insertion_Name): Special-case printing with
+       acronyms.
+
+2022-09-12  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-imagei.adb (Image_Integer): Add justification.
+
+2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Get_SPARK_Mode_Type): Fix header box; replace
+       chained IF with a CASE statement.
+
+2022-09-12  Yannick Moy  <moy@adacore.com>
+
+       * sem_prag.adb (Analyze_Pragma): Accept SPARK_Mode=>Auto as
+       configuration pragma.
+       (Get_SPARK_Mode): Make the value for Auto explicit.
+       * snames.ads-tmpl (Name_Auto): Add name.
+
+2022-09-12  Joffrey Huguet  <huguet@adacore.com>
+
+       * doc/gnat_rm/the_gnat_library.rst: Remove paragraphs about SPARK
+       containers.
+       * gnat_rm.texi, gnat_ugn.texi: Regenerate.
 
-       * rtsfind.ads, libgnarl/s-taskin.ads, exp_ch3.adb, exp_ch4.adb,
-       exp_ch6.adb, exp_ch9.adb, sem_ch6.adb: Move master related
-       entities to the expander directly.
+2022-09-12  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-maccod.ads: Mark package as SPARK_Mode Off.
+
+2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fe.h (Unnest_Subprogram_Mode): Declare.
+
+2022-09-12  Steve Baird  <baird@adacore.com>
+
+       * contracts.adb
+       (Analyze_Package_Contract): Do not analyze the contract of a
+       temporary package created just to check conformance of an actual
+       package.
+
+2022-09-12  Joffrey Huguet  <huguet@adacore.com>
+
+       * Makefile.rtl: Remove SPARK containers filenames.
+       * impunit.adb: Remove SPARK containers packages names.
+       * libgnat/a-cfdlli.adb, libgnat/a-cfdlli.ads: Remove content and
+       add pragma Compile_Time_Error with suitable message.
+       * libgnat/a-cfhama.adb, libgnat/a-cfhama.ads: Likewise.
+       * libgnat/a-cfhase.adb, libgnat/a-cfhase.ads: Likewise.
+       * libgnat/a-cfidll.adb, libgnat/a-cfidll.ads: Likewise.
+       * libgnat/a-cfinse.adb, libgnat/a-cfinse.ads: Likewise.
+       * libgnat/a-cfinve.adb, libgnat/a-cfinve.ads: Likewise.
+       * libgnat/a-cforma.adb, libgnat/a-cforma.ads: Likewise.
+       * libgnat/a-cforse.adb, libgnat/a-cforse.ads: Likewise.
+       * libgnat/a-cofove.adb, libgnat/a-cofove.ads: Likewise.
+       * libgnat/a-cofuma.adb, libgnat/a-cofuma.ads: Likewise.
+       * libgnat/a-cofuse.adb, libgnat/a-cofuse.ads: Likewise.
+       * libgnat/a-cofuve.adb, libgnat/a-cofuve.ads: Likewise.
+       * libgnat/a-cofuba.adb, libgnat/a-cofuba.ads: Remove package.
+
+2022-09-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Old]):
+       Adapt to object declaration being rewritten into object renaming.
+
+2022-09-12  Justin Squirek  <squirek@adacore.com>
+
+       * contracts.adb, contracts.ads
+       (Analyze_Pragmas_In_Declarations): Added to aid in the new
+       expansion model so that pragmas relating to contracts can get
+       processed early before the rest of the subprogram containing them.
+       (Build_Subprogram_Contract_Wrapper): Created to do the majority of
+       expansion for postconditions. It builds a local wrapper with the
+       statements and declarations within a given subprogram.
+       (Is_Prologue_Renaming): Moved out from Process_Preconditions to be
+       used generally within the contracts package.
+       (Build_Entry_Contract_Wrapper): Moved from exp_ch7.
+       (Expand_Subprogram_Contract): Add new local variable Decls to
+       store expanded declarations needed for evaluation of contracts.
+       Call new wrapper building procedure and modify comments to match
+       new expansion model.
+       (Get_Postcond_Enabled): Deleted.
+       (Get_Result_Object_For_Postcond): Deleted.
+       (Get_Return_Success_For_Postcond): Deleted.
+       (Process_Contract_Cases): Add new parameter to store declarations.
+       (Process_Postconditions): Add new parameter to store declarations.
+       (Process_Preconditions): Add new parameter to store declarations.
+       Add code to move entry-call prologue renamings
+       * einfo.ads: Document new field Wrapped_Statements and modify
+       comment for Postconditions_Proc.
+       * exp_attr.adb
+       (Analyze_Attribute): Modify expansion of the 'Old attribute to
+       recognize new expansion model and use Wrapped_Statements instead
+       of Postconditions_Proc.
+       * exp_ch6.adb
+       (Add_Return): Remove special expansion for postconditions.
+       (Expand_Call): Modify condition checking for calls to access
+       subprogram wrappers to handle new expansion models.
+       (Expand_Call_Helper): Remove special expansion for postconditions.
+       (Expand_Non_Function_Return): Remove special expansion for
+       postconditions.
+       (Expand_Simple_Function_Return): Remove special expansion for
+       postconditions.
+       * exp_ch7.adb
+       (Build_Finalizer): Deleted, but replaced by code in
+       Build_Finalizer_Helper
+       (Build_Finalizer_Helper): Renamed to Build_Finalizer, and special
+       handling of 'Old objects removed.
+       * exp_ch9.adb
+       (Build_Contract_Wrapper): Renamed and moved to contracts package.
+       * exp_prag.adb
+       (Expand_Pragma_Contract_Cases): Delay analysis of contracts since
+       they now instead get analyzed as part of the wrapper generation
+       instead of after analysis of their corresponding subprogram's
+       body.
+       (Expand_Pragma_Check): Label expanded if-statements which come
+       from the expansion of assertion statements as
+       Comes_From_Check_Or_Contract.
+       * freeze.adb
+       (Freeze_Entity): Add special case to avoid freezing when a freeze
+       node gets generated as part of the expansion of a postcondition
+       check.
+       * gen_il-gen-gen_nodes.adb: Add new flag
+       Comes_From_Check_Or_Contract.
+       * gen_il-fields.ads: Add new field Wrapped_Statements. Add new
+       flag Comes_From_Check_Or_Contract.
+       * gen_il-gen-gen_entities.adb: Add new field Wrapped_Statements.
+       * ghost.adb
+       (Is_OK_Declaration): Replace Name_uPostconditions with
+       Name_uWrapped_Statements.
+       (Is_OK_Statement): Simplify condition due to the loss of
+       Original_Node as a result of the new expansion model of contracts
+       and use new flag Comes_From_Check_Or_Contract in its place.
+       * inline.adb
+       (Declare_Postconditions_Result): Replace Name_uPostconditions with
+       Name_uWrapped_Statements.
+       (Expand_Inlined_Call): Replace Name_uPostconditions with
+       Name_uWrapped_Statements.
+       * lib.adb, lib.ads
+       (ipu): Created to aid in debugging.
+       * lib-xref.adb
+       (Generate_References): Remove special handling for postcondition
+       procedures.
+       * sem_attr.adb
+       (Analyze_Attribute_Old_Result): Add new context in which 'Old can
+       appear due to the changes in expansion. Replace
+       Name_uPostconditions with Name_uWrapped_Statements.
+       (Result): Replace Name_uPostconditions with
+       Name_uWrapped_Statements.
+       * sem_ch11.adb
+       (Analyze_Handled_Statements): Remove check to exclude warnings on
+       useless assignments within postcondition procedures since
+       postconditions no longer get isolated into separate subprograms.
+       * sem_ch6.adb
+       (Analyze_Generic_Subprogram_Body): Modify expansion of generic
+       subprogram bodies so that contracts (and their associated pragmas)
+       get analyzed first.
+       (Analyze_Subprogram_Body_Helper): Remove global HSS variable due
+       to the HSS of the body potentially changing during the expansion
+       of contracts. In cases where it was used instead directly call
+       Handled_Statement_Sequence. Modify expansion of subprogram bodies
+       so that contracts (and their associated pragmas) get analyzed
+       first.
+       (Check_Missing_Return): Create local HSS variable instead of using
+       a global one.
+       (Move_Pragmas): Use new pragma table instead of an explicit list.
+       * sem_elab.adb
+       (Is_Postconditions_Proc): Deleted since the new scheme of
+       expansion no longer divides postcondition checks to a separate
+       subprogram and so cannot be easily identified (similar to
+       pre-condition checks).
+       (Info_Call): Remove info printing for _Postconditions subprograms.
+       (Is_Assertion_Pragma_Target): Remove check for postconditions
+       procedure
+       (Is_Bridge_Target): Remove check for postconditions procedure.
+       (Get_Invocation_Attributes): Remove unneeded local variables and
+       check for postconditions procedure.
+       (Output_Call): Remove info printing for _Postconditions
+       subprograms.
+       * sem_prag.adb, sem_prag.ads: Add new Pragma table for pragmas
+       significant to subprograms, along with tech-debt comment.
+       (Check_Arg_Is_Local_Name): Modified to recognize the new
+       _Wrapped_Statements internal subprogram and the new expansion
+       model.
+       (Relocate_Pragmas_To_Body): Replace Name_uPostconditions with
+       Name_uWrapped_Statements.
+       * sem_res.adb
+       (Resolve_Entry_Call): Add conditional to detect both contract
+       based wrappers of entries, but also wrappers generated as part of
+       general contract expansion (e.g. local postconditions
+       subprograms).
+       * sem_util.adb
+       (Accessibility_Level): Verify 'Access is not taken based on a
+       component of a function result.
+       (Has_Significant_Contracts): Replace Name_uPostconditions with
+       Name_uWrapped_Statements.
+       (Same_Or_Aliased_Subprogram): Add conditional to detect and obtain
+       the original subprogram based on the new concept of
+       "postcondition" wrappers.
+       * sinfo.ads: Add documentation for new flag
+       Comes_From_Check_Or_Contract.
+       * snames.ads-tmpl: Remove Name_uPostconditions and add
+       Name_uWrapped_Statements
+
+2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_unst.adb (Unnest_Subprograms.Search_Subprograms): Skip the
+       subprogram bodies that are not to be unnested.
+
+2022-09-12  Steve Baird  <baird@adacore.com>
+
+       * sem_aggr.adb
+       (Resolve_Array_Aggregate): Generate an appropriate error message
+       in the case where an error in the source code leads to an
+       N_Iterated_Element_Association node in a bad context.
+
+2022-09-12  Steve Baird  <baird@adacore.com>
+
+       * sem_ch4.adb
+       (Analyze_Selected_Component): Initialize the local variable Comp
+       to avoid having CodePeer generate an uninitialized variable
+       warning.
+
+2022-09-12  Steve Baird  <baird@adacore.com>
+
+       * sem_ch4.adb
+       (Analyze_Selected_Component): Avoid initializing the local
+       variable Comp if the variable is not going to be subsequently
+       referenced. This is a correctness issue because the call to
+       First_Entity can fail.
+
+2022-09-12  Steve Baird  <baird@adacore.com>
+
+       * sem_ch9.adb
+       (Satisfies_Lock_Free_Requirements): If Ceiling_Locking locking
+       policy has been specified, then either return False (if Lock_Free
+       was not explicitly specified) or generate a warning that ceiling
+       locking will not be implemented for this protected unit (if
+       Lock_Free was explicitly specified). Generate an error message (in
+       addition to returning False) if an explicit Lock_Free aspect
+       specification is rejected because atomic primitives are not
+       supported on the given target.
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Clarify that the
+       Lock_Free aspect for a protected unit takes precedence over the
+       Ceiling_Locking locking policy in the case where both apply.
+       * gnat_rm.texi: Regenerate.
 
-2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch9.adb (Build_Protected_Spec): Tidy up and propagate the
+       Comes_From_Source flag onto the new formal parameters.
+       * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not check
+       references for subprograms generated for protected subprograms.
+
+2022-09-12  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_res.adb
+       (Resolve_Equality_Op): Add handling for equality ops with
+       user-defined literal operands.
+       * sem_util.ads
+       (Is_User_Defined_Literal): Update spec comment to indicate
+       inclusion of named number cases.
+       * sem_util.adb
+       (Corresponding_Primitive_Op): Rather than following the chain of
+       ancestor subprograms via Alias and Overridden_Operation links, we
+       check for matching profiles between primitive subprograms of the
+       descendant type and the ancestor subprogram (by calling a new
+       nested function Profile_Matches_Ancestor). This prevents the
+       compiler from hanging due to circular linkages via those fields
+       that can occur between inherited and overriding subprograms
+       (which might indicate a latent bug, but one that may be rather
+       delicate to resolve).
+       (Profile_Matches_Ancestor): New nested subprogram to compare the
+       profile of a primitive subprogram with the profile of a candidate
+       ancestor subprogram.
+       (Is_User_Defined_Literal): Also return True in cases where the
+       node N denotes a named number (E_Name_Integer and E_Named_Real).
+
+2022-09-12  Steve Baird  <baird@adacore.com>
+
+       * debug.adb: remove a comment.
+
+2022-09-12  Bob Duff  <duff@adacore.com>
+
+       * checks.adb
+       (Selected_Length_Checks): In the message for an aggregate that has
+       too few or too many elements, add "!!" to make sure the warning
+       gets printed in with'ed units. Note that we have to put "!!"
+       before the "??", because Compile_Time_Constraint_Error detects
+       warnings by comparing the last character of the message with '?'
+       (which is bit dubious, but we're not changing that here).
+       (Length_Mismatch_Info_Message): Use Unat for some things that
+       can't be negative. Specify Decimal instead of Auto in calls to
+       UI_Image.
+       * sem_util.adb
+       (Compile_Time_Constraint_Error): Minor.
+       * uintp.adb
+       (Image_Uint): It's always better to initialize objects on their
+       declaration.
+
+2022-09-12  Patrick Bernardi  <bernardi@adacore.com>
+
+       * libgnat/system-vxworks7-x86_64-kernel.ads: Set
+       Support_Atomic_Primitives to false.
+       * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Ditto.
+
+2022-09-12  Patrick Bernardi  <bernardi@adacore.com>
+
+       * libgnat/system-qnx-arm.ads: Set Support_Atomic_Primitives to
+       false.
+       * libgnat/system-vxworks7-aarch64.ads: Ditto.
+       * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Ditto.
+       * libgnat/system-vxworks7-arm.ads: Ditto.
+       * libgnat/system-vxworks7-arm-rtp-smp.ads: Ditto.
+       * libgnat/system-vxworks7-x86-kernel.ads: Ditto.
+       * libgnat/system-vxworks7-x86-rtp-smp.ads: Ditto.
+
+2022-09-12  Bob Duff  <duff@adacore.com>
+
+       * par-tchk.adb, par-util.adb, prep.adb, prepcomp.adb, scng.adb:
+       Use "in" instead of chains of "=" connected with "or else".
+       Likewise for "not in", "/=", "and then". Misc cleanup.
+       * par-ch10.adb, par-ch12.adb, par-ch13.adb, par-ch4.adb: Likewise.
+       * par-ch8.adb, par-ch9.adb, par-endh.adb, par-sync.adb: Likewise.
+       * par.adb
+       (Pf_Rec): Remove filler, which was added August 25, 1993 to get
+       around a compiler limitation that no longer exists. Minor cleanup.
+       Remove useless qualfications.
+       * par-ch3.adb: Remove redundant return statements.
+       (Component_Scan_Loop): Remove loop name; there are no nested
+       loops, so it's unnecessary and possibly misleading, and it causes
+       too-long lines.
+       * par-ch5.adb: DRY: Remove comments that repeat the comments in
+       par.adb.
+       (P_Sequence_Of_Statements): It is better to initialize things on
+       the declaration. And constants are better than variables.
+       (Test_Statement_Required): Remove unnecessary insertion of a null
+       statement.
+       * par-ch6.adb, par-ch7.adb: DRY: Remove comments that repeat the
+       comments in par.adb.
+
+2022-09-12  Javier Miranda  <miranda@adacore.com>
+
+       Revert:
+       2022-09-06  Javier Miranda  <miranda@adacore.com>
+
+       * debug.adb
+       (Debug_Flag_Underscore_X): Switch added temporarily to allow
+       disabling extra formal checks.
+       * exp_attr.adb
+       (Expand_N_Attribute_Reference [access types]): Add extra formals
+       to the subprogram referenced in the prefix of 'Unchecked_Access,
+       'Unrestricted_Access or 'Access; required to check that its extra
+       formals match the extra formals of the corresponding subprogram
+       type.
+       * exp_ch3.adb
+       (Stream_Operation_OK): Declaration moved to the public part of the
+       package.
+       (Validate_Tagged_Type_Extra_Formals): New subprogram.
+       (Expand_Freeze_Record_Type): Improve the code that takes care of
+       adding the extra formals of dispatching primitives; extended to
+       add also the extra formals to renamings of dispatching primitives.
+       * exp_ch3.ads
+       (Stream_Operation_OK): Declaration moved from the package body.
+       * exp_ch6.adb
+       (Has_BIP_Extra_Formal): Subprogram declaration moved to the public
+       part of the package. In addition, a parameter has been added to
+       disable an assertion that requires its use with frozen entities.
+       (Expand_Call_Helper): Enforce assertion checking extra formals on
+       thunks.
+       (Is_Build_In_Place_Function): Return False for entities with
+       foreign convention.
+       (Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
+       Is_Return_Object replaced by the local variable
+       Is_OK_Return_Object that evaluates to False for scopes with
+       foreign convention.
+       (Might_Have_Tasks): Fix check of class-wide limited record types.
+       (Needs_BIP_Task_Actuals): Remove assertion to allow calling this
+       function in more contexts; in addition it returns False for
+       functions returning objects with foreign convention.
+       (Needs_BIP_Finalization_Master): Likewise.
+       (Needs_BIP_Alloc_Form): Likewise.
+       * exp_ch6.ads
+       (Stream_Operation_OK): Declaration moved from the package body. In
+       addition, a parameter has been added to disable assertion that
+       requires its use with frozen entities.
+       * freeze.adb
+       (Check_Itype): Add extra formals to anonymous access subprogram
+       itypes.
+       (Freeze_Expression): Improve code that disables the addition of
+       extra formals to functions with foreign convention.
+       (Check_Extra_Formals): Moved to package Sem_Ch6 as
+       Extra_Formals_OK.
+       (Freeze_Subprogram): Add extra formals to non-dispatching
+       subprograms.
+       * sem_ch3.adb
+       (Access_Subprogram_Declaration): Defer the addition of extra
+       formals to the freezing point so that we know the convention.
+       (Check_Anonymous_Access_Component): Likewise.
+       (Derive_Subprogram): Fix documentation.
+       * sem_ch6.adb
+       (Check_Anonymous_Return): Fix check of access to class-wide
+       limited record types.
+       (Check_Untagged_Equality): Placed in alphabetical order.
+       (Extra_Formals_OK): Subprogram moved from freeze.adb.
+       (Extra_Formals_Match_OK): New subprogram.
+       (Has_BIP_Formals): New subprogram.
+       (Has_Extra_Formals): New subprograms.
+       (Needs_Accessibility_Check_Extra): New subprogram.
+       (Needs_Constrained_Extra): New subprogram.
+       (Parent_Subprogram): New subprogram.
+       (Add_Extra_Formal): Minor code cleanup.
+       (Create_Extra_Formals): Enforce matching extra formals on
+       overridden and aliased entities.
+       (Has_Reliable_Extra_Formals): New subprogram.
+       * sem_ch6.ads
+       (Extra_Formals_OK): Subprogram moved from freeze.adb.
+       (Extra_Formals_Match_OK): New subprogram.
+       * sem_eval.adb
+       (Compile_Time_Known_Value): Improve predicate to avoid assertion
+       failure; found working on this ticket; this change does not affect
+       the behavior of the compiler because this subprogram has an
+       exception handler that returns False when the assertion fails.
+       * sem_util.adb
+       (Needs_Result_Accessibility_Level): Do not return False for
+       dispatching operations compiled with Ada_Version < 2012 since they
+       they may be overridden by primitives compiled with Ada_Version >=
+       Ada_2012.
+
+2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (gnat_to_gnu_param): Set DECL_ARTIFICIAL.
+
+2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.cc (At_End_Proc_to_gnu): Use the End_Label of
+       the child Handled_Statement_Sequence for body nodes.
+       (set_end_locus_from_node): Minor tweaks.
+
+2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.cc (Full_View_Of_Private_Constant): New
+       function returning the Full_View of a private constant, after
+       looking through a chain of renamings, if any.
+       (Identifier_to_gnu): Call it on the entity.  Small cleanup.
+
+2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils.cc (gnat_pushdecl): Preserve named
+       TYPE_DECLs consistently for all kind of pointer types.
+
+2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Divide>: Report a
+       violation of No_Dependence on System.GCC if the result type is
+       larger than a word.
+       <N_Op_Shift>: Likewise.
+       <N_Op_Mod>: Likewise.
+       <N_Op_Rem>: Likewise.
+       (convert_with_check): Report a violation of No_Dependence on
+       System.GCC for a conversion between an integer type larger than
+       a word and a floating-point type.
+
+2022-09-06  Steve Baird  <baird@adacore.com>
+
+       * sem_ch9.adb
+       (Allows_Lock_Free_Implementation): Return False if
+       Support_Atomic_Primitives is False.
+
+2022-09-06  Steve Baird  <baird@adacore.com>
+
+       * debug.adb: Remove comment regarding the -gnatd9 switch.
+       * doc/gnat_rm/implementation_defined_attributes.rst: Remove all
+       mention of the Lock_Free attribute.
+       * gnat_rm.texi, gnat_ugn.texi: Regenerate.
+       * exp_attr.adb, sem_attr.adb: Remove all mention of the former
+       Attribute_Lock_Free enumeration element of the Attribute_Id type.
+       * sem_ch9.adb
+       (Allows_Lock_Free_Implementation): Remove the Debug_Flag_9 test.
+       Return False in the case of a protected function whose result type
+       requires use of the secondary stack.
+       (Satisfies_Lock_Free_Requirements): This functions checks for
+       certain constructs and returns False if one is found. In the case
+       of a protected function, there is no need to check to see if the
+       protected object is being modified. So it is ok to omit *some*
+       checks in the case of a protected function. But other checks which
+       are required (e.g., the test for a reference to a variable that is
+       not part of the protected object) were being incorrectly omitted.
+       This could result in accepting "Lock_Free => True" aspect
+       specifications that should be rejected.
+       * snames.adb-tmpl: Name_Lock_Free no longer requires special
+       treatment in Get_Pragma_Id or Is_Pragma_Name (because it is no
+       longer an attribute name).
+       * snames.ads-tmpl: Move the declaration of Name_Lock_Free to
+       reflect the fact that it is no longer the name of an attribute.
+       Delete Attribute_Lock_Free from the Attribute_Id enumeration type.
+
+2022-09-06  Steve Baird  <baird@adacore.com>
+
+       * libgnat/a-coorse.ads: Restore Aggregate aspect specification for
+       type Set.
+
+2022-09-06  Marc Poulhiès  <poulhies@adacore.com>
+
+       * exp_util.adb (Build_Allocate_Deallocate_Proc): Add
+       Alignment_Param in the formal list for calls to SS_Allocate.
+
+2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * inline.adb (Process_Formals): Preserve Has_Private_View flag while
+       rewriting formal into actual parameters.
+
+2022-09-06  Javier Miranda  <miranda@adacore.com>
+
+       * debug.adb
+       (Debug_Flag_Underscore_X): Switch added temporarily to allow
+       disabling extra formal checks.
+       * exp_attr.adb
+       (Expand_N_Attribute_Reference [access types]): Add extra formals
+       to the subprogram referenced in the prefix of 'Unchecked_Access,
+       'Unrestricted_Access or 'Access; required to check that its extra
+       formals match the extra formals of the corresponding subprogram
+       type.
+       * exp_ch3.adb
+       (Stream_Operation_OK): Declaration moved to the public part of the
+       package.
+       (Validate_Tagged_Type_Extra_Formals): New subprogram.
+       (Expand_Freeze_Record_Type): Improve the code that takes care of
+       adding the extra formals of dispatching primitives; extended to
+       add also the extra formals to renamings of dispatching primitives.
+       * exp_ch3.ads
+       (Stream_Operation_OK): Declaration moved from the package body.
+       * exp_ch6.adb
+       (Has_BIP_Extra_Formal): Subprogram declaration moved to the public
+       part of the package. In addition, a parameter has been added to
+       disable an assertion that requires its use with frozen entities.
+       (Expand_Call_Helper): Enforce assertion checking extra formals on
+       thunks.
+       (Is_Build_In_Place_Function): Return False for entities with
+       foreign convention.
+       (Make_Build_In_Place_Call_In_Object_Declaration): Occurrences of
+       Is_Return_Object replaced by the local variable
+       Is_OK_Return_Object that evaluates to False for scopes with
+       foreign convention.
+       (Might_Have_Tasks): Fix check of class-wide limited record types.
+       (Needs_BIP_Task_Actuals): Remove assertion to allow calling this
+       function in more contexts; in addition it returns False for
+       functions returning objects with foreign convention.
+       (Needs_BIP_Finalization_Master): Likewise.
+       (Needs_BIP_Alloc_Form): Likewise.
+       * exp_ch6.ads
+       (Stream_Operation_OK): Declaration moved from the package body. In
+       addition, a parameter has been added to disable assertion that
+       requires its use with frozen entities.
+       * freeze.adb
+       (Check_Itype): Add extra formals to anonymous access subprogram
+       itypes.
+       (Freeze_Expression): Improve code that disables the addition of
+       extra formals to functions with foreign convention.
+       (Check_Extra_Formals): Moved to package Sem_Ch6 as
+       Extra_Formals_OK.
+       (Freeze_Subprogram): Add extra formals to non-dispatching
+       subprograms.
+       * sem_ch3.adb
+       (Access_Subprogram_Declaration): Defer the addition of extra
+       formals to the freezing point so that we know the convention.
+       (Check_Anonymous_Access_Component): Likewise.
+       (Derive_Subprogram): Fix documentation.
+       * sem_ch6.adb
+       (Check_Anonymous_Return): Fix check of access to class-wide
+       limited record types.
+       (Check_Untagged_Equality): Placed in alphabetical order.
+       (Extra_Formals_OK): Subprogram moved from freeze.adb.
+       (Extra_Formals_Match_OK): New subprogram.
+       (Has_BIP_Formals): New subprogram.
+       (Has_Extra_Formals): New subprograms.
+       (Needs_Accessibility_Check_Extra): New subprogram.
+       (Needs_Constrained_Extra): New subprogram.
+       (Parent_Subprogram): New subprogram.
+       (Add_Extra_Formal): Minor code cleanup.
+       (Create_Extra_Formals): Enforce matching extra formals on
+       overridden and aliased entities.
+       (Has_Reliable_Extra_Formals): New subprogram.
+       * sem_ch6.ads
+       (Extra_Formals_OK): Subprogram moved from freeze.adb.
+       (Extra_Formals_Match_OK): New subprogram.
+       * sem_eval.adb
+       (Compile_Time_Known_Value): Improve predicate to avoid assertion
+       failure; found working on this ticket; this change does not affect
+       the behavior of the compiler because this subprogram has an
+       exception handler that returns False when the assertion fails.
+       * sem_util.adb
+       (Needs_Result_Accessibility_Level): Do not return False for
+       dispatching operations compiled with Ada_Version < 2012 since they
+       they may be overridden by primitives compiled with Ada_Version >=
+       Ada_2012.
+
+2022-09-06  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch4.adb (Expand_N_If_Expression): Disable optimization
+       for LLVM.
+
+2022-09-06  Javier Miranda  <miranda@adacore.com>
+
+       * sem_prag.adb
+       (Analyze_Pre_Post_Condition_In_Decl_Part): Improve check to report
+       an error in non-legal class-wide conditions.
+
+2022-09-06  Steve Baird  <baird@adacore.com>
+
+       * libgnat/a-strsup.adb, libgnat/a-stwisu.adb, libgnat/a-stzsup.adb
+       (Super_Slice function and procedure): fix slice length computation.
+
+2022-09-06  Steve Baird  <baird@adacore.com>
 
-       * sem_res.adb (Is_Assignment_Or_Object_Expression): Whitespace
-       cleanup.
-       (Is_Attribute_Expression): Prevent AST climbing from going to
-       the root of the compilation unit.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Improve -gnatVa, -gnatVc, -gnatVd, -gnatVe, -gnatVf, -gnatVo,
+       -gnatVp, -gnatVr, and -gnatVs switch descriptions.
+       * gnat_ugn.texi: Regenerate.
 
-2021-06-16  Steve Baird  <baird@adacore.com>
+2022-09-06  Justin Squirek  <squirek@adacore.com>
+
+       * exp_unst.adb
+       (Visit_Node): Add N_Block_Statement to the enclosing construct
+       case since they can now have "At end" procedures. Also, recognize
+       calls from "At end" procedures when recording subprograms.
+
+2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * inline.adb (Replace_Formal): Fix name of the referenced routine.
+
+2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Old]):
+       Remove unnecessary local constant that was shadowing another
+       constant with the same initial value.
+
+2022-09-06  Julien Bortolussi  <bortolussi@adacore.com>
+
+       * libgnat/a-cforse.ads (Replace): Fix the postcondition.
+
+2022-09-06  Steve Baird  <baird@adacore.com>
+
+       * exp_attr.adb
+       (Attribute_Valid): Ensure that PBtyp is initialized to a value for
+       which Is_Scalar_Type is True.
+       * checks.adb
+       (Determine_Range): Call Implemention_Base_Type instead of
+       Base_Type in order to ensure that result is suitable for passing
+       to Enum_Pos_To_Rep.
+
+2022-09-06  Bob Duff  <duff@adacore.com>
+           Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gen_il-fields.ads
+       (First_Real_Statement): Remove this field.
+       * gen_il-gen-gen_nodes.adb: Remove the First_Real_Statement field.
+       Add the At_End_Proc field to nodes that have both Declarations and
+       HSS.
+       * sinfo.ads
+       (At_End_Proc): Document new semantics.
+       (First_Real_Statement): Remove comment.
+       * exp_ch11.adb
+       (Expand_N_Handled_Sequence_Of_Statements): Remove
+       First_Real_Statement.
+       * exp_ch7.adb
+       (Build_Cleanup_Statements): Remove "Historical note"; it doesn't
+       seem useful, and we have revision history.
+       (Create_Finalizer): Insert the finalizer later, typically in the
+       statement list, in some cases.
+       (Build_Finalizer_Call): Attach the "at end" handler to the parent
+       of the HSS node in most cases, so it applies to declarations.
+       (Expand_Cleanup_Actions): Remove Wrap_HSS_In_Block and the call to
+       it. Remove the code that moves declarations. Remove some redundant
+       code.
+       * exp_ch9.adb
+       (Build_Protected_Entry): Copy the At_End_Proc.
+       (Build_Protected_Subprogram_Body): Reverse the sense of Exc_Safe,
+       to avoid double negatives. Remove "Historical note" as in
+       exp_ch7.adb.
+       (Build_Unprotected_Subprogram_Body): Copy the At_End_Proc from the
+       protected version.
+       (Expand_N_Conditional_Entry_Call): Use First (Statements(...))
+       instead of First_Real_Statement(...).
+       (Expand_N_Task_Body): Put the Abort_Undefer call at the beginning
+       of the declarations, rather than in the HSS. Use First
+       (Statements(...)) instead of First_Real_Statement(...). Copy the
+       At_End_Proc.
+       * inline.adb
+       (Has_Initialized_Type): Return False if the declaration does not
+       come from source.
+       * libgnarl/s-tpoben.ads
+       (Lock_Entries, Lock_Entries_With_Status): Document when these
+       things raise Program_Error. It's not clear that
+       Lock_Entries_With_Status ought to be raising exceptions, but at
+       least it's documented now.
+       * sem.ads: Minor comment fixes.
+       * sem_ch6.adb
+       (Analyze_Subprogram_Body_Helper): Use First (Statements(...))
+       instead of First_Real_Statement(...).
+       (Analyze_Null_Procedure): Minor comment fix.
+       * sem_util.adb
+       (Might_Raise): Return True for N_Raise_Expression. Adjust the part
+       about exceptions generated by the back end to match the reality of
+       what the back end generates.
+       (Update_First_Real_Statement): Remove.
+       * sem_util.ads: Remove First_Real_Statement from comment.
+       * sinfo-utils.ads
+       (First_Real_Statement): New function that always returns Empty.
+       This should be removed once gnat-llvm and codepeer have been
+       updated to not refer to First_Real_Statement.
+       * sprint.adb
+       (Sprint_At_End_Proc): Deal with printing At_End_Proc.
+       * sem_prag.adb: Minor comment fixes.
+       * gcc-interface/trans.cc (At_End_Proc_to_gnu): New function.
+       (Subprogram_Body_to_gnu): Call it to handle an At_End_Proc.
+       (Handled_Sequence_Of_Statements_to_gnu): Likewise. Remove the
+       support for First_Real_Statement and clean up the rest.
+       (Exception_Handler_to_gnu): Do not push binding levels.
+       (Compilation_Unit_to_gnu): Adjust call to process_decls.
+       (gnat_to_gnu) <N_Package_Specification>: Likewise. <N_Entry_Body>:
+       Likewise. <N_Freeze_Entity>: Likewise. <N_Block_Statement>:
+       Likewise and call At_End_Proc_to_gnu to handle an At_End_Proc.
+       <N_Package_Body>: Likewise.
+       (process_decls): Remove GNAT_END_LIST parameter and adjust
+       recursive calls.
+
+2022-09-06  Steve Baird  <baird@adacore.com>
 
-       * doc/gnat_rm/implementation_advice.rst: Add a section for RM
-       A.18 .
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Document new
+       temporary rule that a "when others =>" case choice must be given
+       when casing on a composite selector.
        * gnat_rm.texi: Regenerate.
 
-2021-06-16  Justin Squirek  <squirek@adacore.com>
+2022-09-06  Steve Baird  <baird@adacore.com>
+
+       * sem_case.adb: Define a new Boolean constant,
+       Simplified_Composite_Coverage_Rules, initialized to True. Setting
+       this constant to True has two effects: 1- Representative value
+       sets are not fully initialized - this is done to avoid capacity
+       problems, as well as for performance. 2- In
+       Check_Case_Pattern_Choices, the only legality check performed is a
+       check that a "when others =>" choice is present.
+
+2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix error
+       template.
+
+2022-09-06  Steve Baird  <baird@adacore.com>
+
+       * exp_attr.adb
+       (Make_Range_Test): In determining which subtype's First and Last
+       attributes are to be queried as part of a range test, call
+       Validated_View in order to get a scalar (as opposed to private)
+       subtype.
+       (Attribute_Valid): In determining whether to perform a signed or
+       unsigned comparison for a range test, call Validated_View in order
+       to get a scalar (as opposed to private) type. Also correct a typo
+       which, by itself, is the source of the problem reported for this
+       ticket.
+
+2022-09-06  Steve Baird  <baird@adacore.com>
+
+       * sem_ch4.adb
+       (Analyze_Selected_Component): Define new Boolean-valued function,
+       Constraint_Has_Unprefixed_Discriminant_Reference, which takes a
+       subtype that is subject to a discriminant-dependent constraint and
+       returns True if any of the constraint values are unprefixed
+       discriminant names. Usually, the Etype of a selected component
+       node is set to Etype of the component. However, in the case of an
+       access-to-array component for which this predicate returns True,
+       we instead use the base type of the Etype of the component.
+       Normally such problematic discriminant references are addressed by
+       calling Build_Actual_Subtype_Of_Component, but that doesn't work
+       if Full_Analyze is False.
+
+2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Include
+       System.Value_U_Spec and System.Value_I_Spec units.
+
+2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-powflt.ads (Powfive): New constant array.
+       * libgnat/s-powlfl.ads (Powfive): Likewise.
+       (Powfive_100): New constant.
+       (Powfive_200): Likewise.
+       (Powfive_300): Likewise.
+       * libgnat/s-powllf.ads (Powfive): New constant array.
+       (Powfive_100): New constant.
+       (Powfive_200): Likewise.
+       (Powfive_300): Likewise.
+       * libgnat/s-valflt.ads (Impl): Replace Powten with Powfive and pass
+       Null_Address for the address of large constants.
+       * libgnat/s-vallfl.ads (Impl): Replace Powten with Powfive and pass
+       the address of large constants.
+       * libgnat/s-valllf.ads (Impl): Likewise.
+       * libgnat/s-valrea.ads (System.Val_Real): Replace Powten_Address
+       with Powfive_Address and add Powfive_{1,2,3}00_Address parameters.
+       * libgnat/s-valrea.adb (Is_Large_Type): New boolean constant.
+       (Is_Very_Large_Type): Likewise.
+       (Maxexp32): Change value of 10 to that of 5.
+       (Maxexp64): Likewise.
+       (Maxexp80): Likewise.
+       (Integer_to_Real): Use a combination of tables of powers of 5 and
+       scaling if the base is 10.
+       (Large_Powten): Rename into...
+       (Large_Powfive): ...this.  Add support for large constants.
+       (Large_Powfive): New overloaded function for very large exponents.
+
+2022-09-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_aspects.rst
+       (Aspect Iterable): Include Last and Previous primitives in
+       syntactic and semantic description.
+       * exp_attr.adb
+       (Expand_N_Attribute_Reference): Don't expect attributes like
+       Iterable that can only appear in attribute definition clauses.
+       * sem_ch13.adb
+       (Analyze_Attribute_Definition_Clause): Prevent crash on
+       non-aggregate Iterable attribute; improve basic diagnosis of
+       attribute values.
+       (Resolve_Iterable_Operation): Improve checks for illegal
+       primitives in aspect Iterable, e.g. with wrong number of formal
+       parameters.
+       (Validate_Iterable_Aspect): Prevent crashes on syntactically
+       illegal aspect expression.
+       * sem_util.adb
+       (Get_Cursor_Type): Fix style.
+       * gnat_ugn.texi, gnat_rm.texi: Regenerate.
+
+2022-09-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-valuer.ads (System.Value_R): Add Parts formal parameter
+       as well as Data_Index, Scale_Array and Value_Array types.
+       (Scan_Raw_Real): Change type of Scale and return type.
+       (Value_Raw_Real): Likewise.
+       * libgnat/s-valuer.adb (Round_Extra): Reorder parameters and adjust
+       recursive call.
+       (Scan_Decimal_Digits): Reorder parameters, add N parameter and deal
+       with multi-part scale and value.
+       (Scan_Integral_Digits): Likewise.
+       (Scan_Raw_Real): Change type of Scale and return type and deal with
+       multi-part scale and value.
+       (Value_Raw_Real): Change type of Scale and return type and tidy up.
+       * libgnat/s-valued.adb (Impl): Pass 1 as Parts actual parameter.
+       (Scan_Decimal): Adjust to type changes.
+       (Value_Decimal): Likewise.
+       * libgnat/s-valuef.adb (Impl): Pass 1 as Parts actual parameter.
+       (Scan_Fixed): Adjust to type changes.
+       (Value_Fixed): Likewise.
+       * libgnat/s-valrea.adb (Need_Extra): Delete.
+       (Precision_Limit): Always use the precision of the mantissa.
+       (Impl): Pass 2 as Parts actual parameter.
+       (Exact_Log2): New expression function.
+       (Integer_to_Real): Change type of Scale and Val and deal with a
+       2-part integer mantissa.
+       (Scan_Real): Adjust to type changes.
+       (Value_Real): Likewise.
 
-       * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Add
-       check for the mixing of entries.
+2022-09-05  Martin Liska  <mliska@suse.cz>
+
+       * sigtramp-vxworks-target.h: Rename DBX_REGISTER_NUMBER to
+       DEBUGGER_REGNO.
+
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_aggr.adb (Check_Bounds): Move code and comment related to
+       check for null array aggregate from Resolve_Null_Array_Aggregate.
+       * sem_aggr.ads (Is_Null_Aggregate): Move spec from unit body.
+       * sem_aggr.adb (Resolve_Null_Array_Aggregate): Move check to
+       expansion.
+
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb
+       (Array_Aggr_Subtype): Bypass call to Collect_Aggr_Bound with
+       dedicated code for null array aggregates.
+       (Resolve_Array_Aggregate): Remove special handling of null array
+       aggregates.
+       (Resolve_Array_Aggregate): Create bounds, but let
+       Array_Aggr_Subtype create itype entities.
+
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb (Resolve_Null_Array_Aggregate): Insert check as a
+       Raise_Constraint_Error node and not an If_Statement.
+
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb
+       (Resolve_Container_Aggregate): Style cleanup.
+       (Resolve_Record_Aggregate): Remove redundant guard.
+
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_util.ads (Entry_Names_OK): Remove spec.
+       * exp_util.adb (Entry_Names_OK): Remove body.
+
+2022-09-05  Steve Baird  <baird@adacore.com>
+
+       * libgnat/a-coinve.adb, libgnat/a-convec.adb
+       (Append): If the Append that takes an Element and a Count is
+       called with Count = 1, then call the Append that does not take a
+       Count parameter; otherwise call the code that handles the general
+       case. Move the special case detection/handling code that was
+       formerly in that version of Append into the version that does not
+       take a Count parameter, so that now both versions get the
+       performance benefit.
+
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_aggr.adb (Resolve_Null_Array_Aggregate): Create internal
+       type for the aggregate as an itype.
+
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-06-16  Justin Squirek  <squirek@adacore.com>
+       * sem_util.ads (Itype_Has_Declaration): Remove spec.
+       * sem_util.adb (Itype_Has_Declaration): Remove body.
+
+2022-09-05  Steve Baird  <baird@adacore.com>
+
+       * exp_ch3.adb
+       (Expand_N_Object_Declaration): In deciding whether to emit a DIC
+       check, we were previously testing the Has_Init_Expression flag.
+       Continue to test that flag as before, but add a test for the
+       syntactic presence of an initial value in the object declaration.
+       This new test would not supersede the old test in the case where
+       an explicit initial value has been eliminated as part of some tree
+       transformation.
 
-       * sem_ch13.adb (Make_Aitem_Pragma): Check for static expressions
-       in Priority aspect arguments for restriction Static_Priorities.
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Validate_Unchecked_Conversions): Use
+       Has_Warnings_Off.
+       * sem_elab.adb (Check_Internal_Call_Continue): Likewise.
+
+2022-09-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-valuer.adb (Scan_Decimal_Digits): Consistently avoid
+       initializing local variables.
+       (Scan_Integral_Digits): Likewise.
+       (Scan_Raw_Real): Likewise and add a couple of comments.
 
-2021-06-16  Justin Squirek  <squirek@adacore.com>
+2022-09-05  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * sem_util.adb (Accessibility_Level): Take into account
-       renamings of loop parameters.
+       * sem_ch13.adb (Freeze_Entity_Checks): Build predicate functions
+       only after checking the variant part of a record type, if any.
 
-2021-06-16  Matthieu Eyraud  <eyraud@adacore.com>
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * par_sco.adb (Set_Statement_Entry): Change sloc for dominance
-       marker.
-       (Traverse_One): Fix typo.
-       (Output_Header): Fix comment.
+       * exp_aggr.adb
+       (Two_Pass_Aggregate_Expansion): Expand into implicit rather than
+       ordinary loops, to detect violations of restriction
+       No_Implicit_Loops.
+       (Generate_Loop): Likewise for delta array aggregates.
 
-2021-06-16  Richard Kenner  <kenner@adacore.com>
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * exp_unst.adb (Register_Subprogram): Don't look for aliases for
-       subprograms that are generic.  Reorder tests for efficiency.
+       * exp_aggr.adb (Two_Pass_Aggregate_Expansion): Expand iterated
+       component association with an unanalyzed copy of iterated
+       expression. The previous code worked only because the expanded
+       loop used both an analyzed copy of the iterator_specification and
+       an analyzed copy of the iterated expression. Now the iterated
+       expression is reanalyzed in the context of the expanded loop.
+       * par-ch4.adb (Build_Iterated_Component_Association): Don't set
+       defining identifier when iterator specification is present.
+       * sem_aggr.adb (Resolve_Iterated_Association): Pick index name
+       from the iterator specification.
+       * sem_elab.adb (Traverse_Potential_Scenario): Handle iterated
+       element association just like iterated component association. Not
+       strictly part of this fix, but still worth for the completeness.
+       * sem_res.adb (Resolve): Pick index name from the iterator
+       specification, when present.
+       * sem_util.adb (Traverse_More): For completeness, just like the
+       change in Traverse_Potential_Scenario.
+       * sinfo.ads
+       (ITERATED_COMPONENT_ASSOCIATION): Fix and complete description.
+       (ITERATED_ELEMENT_ASSOCIATION): Likewise.
 
-2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
+2022-09-05  Bob Duff  <duff@adacore.com>
 
-       * sem_util.adb (Incomplete_Or_Partial_View): Retrieve the scope of
-       the parameter and use it to find its incomplete view, if any.
+       * sem_ch6.adb
+       (Analyze_Subprogram_Body_Helper): Use First_Real_Statement to deal
+       with this case. Note that First_Real_Statement is likely to be
+       removed as part of this ticket, so this is a temporary fix.
 
-2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
+2022-09-05  Arnaud Charlet  <charlet@adacore.com>
 
-       * freeze.adb (Check_No_Parts_Violations): Return earlier if the
-       type is elementary or does not come from source.
+       * ali.adb (Scan_ALI): Special case i-c*.ali when setting
+       Sec_Stack_Used.
 
-2021-06-16  Bob Duff  <duff@adacore.com>
+2022-09-05  Bob Duff  <duff@adacore.com>
 
-       * ghost.adb: Add another special case where full analysis is
-       needed. This bug is due to quirks in the way
-       Mark_And_Set_Ghost_Assignment works (it happens very early,
-       before name resolution is done).
+       * par-ch5.adb
+       (P_Sequence_Of_Statements): Call Error_Msg_GNAT_Extension to give
+       the error message.
 
-2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_util.adb (Current_Entity_In_Scope): Reimplement.
+       * sem_aggr.adb (Resolve_Iterated_Component_Association): Split
+       processing of cases with and without iterator specification; reuse
+       analysis of iterator specification; improve diagnostics for
+       premature usage of iterator index in discrete choices.
 
-2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_ch8.adb (End_Scope): Remove extra parens.
+       * sem_ch5.adb (Check_Subtype_Definition): Remove redundant call to
+       Present; style cleanup.
 
-2021-06-16  Javier Miranda  <miranda@adacore.com>
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * exp_disp.adb (Build_Class_Wide_Check): Ensure that evaluation
-       of actuals is side effects free (since the check duplicates
-       actuals).
+       * sem_aggr.adb (Resolve_Array_Aggregate): Change an inconsistent
+       use of False into its local equivalent Failure.
 
-2021-06-16  Ed Schonberg  <schonberg@adacore.com>
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_res.adb (Resolve_Raise_Expression): Apply Ada_2020 rules
-       concerning the need for parentheses around Raise_Expressions in
-       various contexts.
+       * sem_aggr.adb (Resolve_Iterated_Component_Association): Change
+       generic name Ent to a more intuitive Scop; rename Remove_Ref to
+       Remove_Reference, so it can be instantiated as a traversal routine
+       with plural name.
 
-2021-06-16  Piotr Trojanek  <trojanek@adacore.com>
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_ch13.adb (Validate_Unchecked_Conversion): Move detection
-       of generic types before switching to their private views; fix
-       style in using AND THEN.
+       * sem_ch4.adb
+       (Is_Empty_Range): Move error reporting to the caller.
+       (Analyze_Qualified_Expression): Move error reporting from Is_Empty_Range;
+       add matching call to End_Scope before rewriting and returning.
 
-2021-06-16  Arnaud Charlet  <charlet@adacore.com>
+2022-09-05  Arnaud Charlet  <charlet@adacore.com>
 
-       * sem_ch3.adb (Analyze_Component_Declaration): Do not special
-       case raise expressions.
+       * bindgen.adb (Gen_Elab_Calls): Check for Check_Elaboration_Flags.
+       * bindusg.adb (Display): Add -k.
+       * opt.ads (Check_Elaboration_Flags): New.
+       * switch-b.adb (Scan_Binder_Switches): Add processing of -k.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
+       documentation for -k and -K.
+       * gnat_ugn.texi: Regenerate.
 
-2021-06-16  Sergey Rybin  <rybin@adacore.com>
+2022-09-05  Arnaud Charlet  <charlet@adacore.com>
 
-       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
-       Instead of referring to the formatting of the Ada examples in
-       Ada RM add use the list of checks that are actually performed.
+       * treepr.adb: Remove local To_Lower and use the procedure
+       version instead.
+
+2022-09-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * aspects.ads (Delaying Evaluation of Aspect): Fix typos.
+       * exp_ch3.adb (Freeze_Type): Do not generate Invariant and DIC
+       procedures for internal types.
+       * exp_util.adb (Build_DIC_Procedure_Body): Adjust comment.
+       * freeze.adb (Freeze_Entity): Call Inherit_Delayed_Rep_Aspects for
+       subtypes and derived types only after the base or parent type has
+       been frozen.  Remove useless freezing for first subtype.
+       (Freeze_Fixed_Point_Type): Call Inherit_Delayed_Rep_Aspects too.
+       * layout.adb (Set_Elem_Alignment): Deal with private types.
+       * sem_ch3.adb (Build_Derived_Enumeration_Type): Build the implicit
+       base as an itype and do not insert its declaration in the tree.
+       (Build_Derived_Numeric_Type): Do not freeze the implicit base.
+       (Derived_Standard_Character): Likewise.
+       (Constrain_Enumeration): Inherit the chain of representation items
+       instead of replacing it.
+       * sem_ch13.ads (Inherit_Aspects_At_Freeze_Point): Add ??? comment.
+       (Inherit_Delayed_Rep_Aspects): Declare.
+       * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Do not invoke
+       Inherit_Delayed_Rep_Aspects.
+       (Inherit_Aspects_At_Freeze_Point): Deal with private types.
+       (Inherit_Delayed_Rep_Aspects): Move to library level.
+
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * einfo-utils.adb (Number_Entries): Refine type of a local variable.
+       * exp_attr.adb (Expand_N_Attribute_Reference): Rename Conctyp to
+       Prottyp; refactor repeated calls to New_Occurrence_Of; replace
+       Number_Entries with Has_Entries.
+       * exp_ch5.adb (Expand_N_Assignment_Statement): Likewise; remove Subprg
+       variable (apparently copy-pasted from expansion of the attribute).
+
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference): Fix detection of the
+       enclosing protected type and of the enclosing protected subprogram.
+       * exp_ch5.adb (Expand_N_Assignment_Statement): Likewise.
+
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * freeze.adb (Freeze_Itype): Remove excessive guard.
+       * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Likewise.
+
+2022-09-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sprint.adb (Sprint_Node_Actual): Handle iterator_specification within
+       iterated_component_association and iterator_filter within
+       iterator_specification.
+
+2022-09-05  Arnaud Charlet  <charlet@adacore.com>
+
+       * doc/gnat_ugn/gnat_and_program_execution.rst: Fix rest syntax
        * gnat_ugn.texi: Regenerate.
 
-2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
+2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_util.adb (Expand_Subtype_From_Expr): Be prepared for rewritten
+       aggregates as expressions.
+
+2022-09-02  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch6.adb (Expand_Simple_Function_Return) Bypass creation of an
+       actual subtype and unchecked conversion to that subtype when the
+       underlying type of the expression has discriminants without defaults.
+
+2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * initialize.c: Do not include vxWorks.h and fcntl.h from here.
-       (__gnat_initialize) [__MINGW32__]: Remove #ifdef and attribute
-       (__gnat_initialize) [init_float]: Delete.
-       (__gnat_initialize) [VxWorks]: Likewise.
-       (__gnat_initialize) [PA-RISC HP-UX 10]: Likewise.
-       * runtime.h: Add comment about vxWorks.h include.
+       * exp_util.adb (Expand_Subtype_From_Expr): Check for the presence
+       of the Is_Constr_Subt_For_U_Nominal flag instead of the absence
+       of the Is_Constr_Subt_For_UN_Aliased flag on the subtype of the
+       expression of an object declaration before reusing this subtype.
+       * sem_ch3.adb (Analyze_Object_Declaration): Do not incorrectly
+       set the Is_Constr_Subt_For_UN_Aliased flag on the actual subtype
+       of an array with definite nominal subtype.  Remove useless test.
 
-2021-06-16  Eric Botcazou  <ebotcazou@adacore.com>
+2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * libgnat/s-except.ads (ZCX_By_Default): Delete.
-       (Require_Body): Likewise.
-       * libgnat/s-except.adb: Replace body with pragma No_Body.
+       * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
+       (No_Dependence): Cite implicit dependences on the runtime library.
+       * gnat_rm.texi, gnat_ugn.texi: Regenerate.
+
+2022-09-02  Claire Dross  <dross@adacore.com>
+
+       * libgnat/a-strmap.adb: Add variants to simple and while loops.
+       * libgnat/a-strsea.adb: Idem.
+
+2022-09-02  Claire Dross  <dross@adacore.com>
 
-2021-06-15  Steve Baird  <baird@adacore.com>
+       * libgnat/s-expmod.adb (Lemma_Add_Mod): Add new lemma to factor
+       out a complex sub-proof.
+       (Exp_Modular): Add assertion to help proof.
 
-       * exp_util.adb (Kill_Dead_Code): Generalize the existing
-       handling of if statements to handle case statements similarly.
+2022-09-02  Claire Dross  <dross@adacore.com>
 
-2021-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+       * libgnat/s-widthu.adb (Lemma_Euclidean): Lemma to prove the
+       relation between the quotient/remainder of a division.
 
-       * raise.h (_gnat_builtin_longjmp): Delete.
-       (set_gnat_exit_status): Likewise.
+2022-09-02  Yannick Moy  <moy@adacore.com>
 
-2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
+       * libgnat/s-aridou.adb: Add or rework ghost code.
+       * libgnat/s-aridou.ads: Add Big_Positive subtype.
 
-       * exp_util.adb (Possible_Side_Effect_In_SPARK): Handle component
-       declaration just like full type and subtype declarations.
+2022-09-02  Eric Botcazou  <ebotcazou@adacore.com>
 
-2021-06-15  Yannick Moy  <moy@adacore.com>
+       * doc/gnat_ugn/gnat_and_program_execution.rst
+       (Non-Symbolic Traceback): Update section.
+       * gnat_rm.texi, gnat_ugn.texi, gnat-style.texi: Regenerate.
 
-       * errout.adb (First_And_Last_Node): Also apply to arbitrary late
-       declarations, not only subprogram specs.
+2022-09-02  Claire Dross  <dross@adacore.com>
+
+       * libgnat/a-nbnbig.ads: Add Always_Return annotation.
+       * libgnat/s-vaispe.ads: New ghost unit for the specification of
+       System.Value_I. Restore proofs.
+       * libgnat/s-vauspe.ads: New ghost unit for the specification of
+       System.Value_U. Restore proofs.
+       * libgnat/s-valuei.adb: The specification only subprograms are
+       moved to System.Value_I_Spec. Restore proofs.
+       * libgnat/s-valueu.adb: The specification only subprograms are
+       moved to System.Value_U_Spec. Restore proofs.
+       * libgnat/s-valuti.ads
+       (Uns_Params): Generic unit used to bundle together the
+       specification functions of System.Value_U_Spec.
+       (Int_Params): Generic unit used to bundle together the
+       specification functions of System.Value_I_Spec.
+       * libgnat/s-imagef.adb: It is now possible to instantiate the
+       appropriate specification units instead of creating imported ghost
+       subprograms.
+       * libgnat/s-imagei.adb: Update to refactoring of specifications
+       and fix proofs.
+       * libgnat/s-imageu.adb: Likewise.
+       * libgnat/s-imgint.ads: Ghost parameters are grouped together in a
+       package now.
+       * libgnat/s-imglli.ads: Likewise.
+       * libgnat/s-imgllu.ads: Likewise.
+       * libgnat/s-imgllli.ads: Likewise.
+       * libgnat/s-imglllu.ads: Likewise.
+       * libgnat/s-imguns.ads: Likewise.
+       * libgnat/s-vallli.ads: Likewise.
+       * libgnat/s-valllli.ads: Likewise.
+       * libgnat/s-imagei.ads: Likewise.
+       * libgnat/s-imageu.ads: Likewise.
+       * libgnat/s-vaispe.adb: Likewise.
+       * libgnat/s-valint.ads: Likewise.
+       * libgnat/s-valuei.ads: Likewise.
+       * libgnat/s-valueu.ads: Likewise.
+       * libgnat/s-vauspe.adb: Likewise.
 
-2021-06-15  Bob Duff  <duff@adacore.com>
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * sem_ch3.adb (Make_Class_Wide_Type): Make sure all the calls to
-       Reinit_Field_To_Zero are for the correct Ekinds.
+       * gcc-interface/trans.cc (gnat_to_gnu) <N_Assignment_Statement>: Fix
+       a couple of minor issues in the commentary.
 
-2021-06-15  Bob Duff  <duff@adacore.com>
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * aspects.ads (No_Task_Parts): New aspect.
-       * snames.ads-tmpl: Add the aspect name.
-       * exp_ch6.adb (Might_Have_Tasks): Return False if this is a
-       class-wide type whose specific type has No_Task_Parts.
-       * freeze.adb (Check_No_Parts_Violations): This is an adaptation
-       of the procedure formerly known as
-       Check_No_Controlled_Parts_Violations, which now supports both
-       No_Controlled_Parts and No_Task_Parts.  It takes a parameter
-       indicating which aspect is being checked.
-       (Freeze_Entity): Call Check_No_Parts_Violations for both
-       aspects.
-       * sem_ch13.adb (Analyze_Aspect_Specifications): The code for
-       Aspect_No_Controlled_Parts already works as is with
-       Aspect_No_Task_Parts.
-       * libgnat/a-iteint.ads: Add No_Task_Parts aspect to the two
-       iterator iterfaces.
-       * doc/gnat_rm/implementation_defined_aspects.rst: Add
-       documentation for the No_Task_Parts aspect.
+       * gcc-interface/trans.cc (gigi): Report a violation of No_Dependence
+       on System.Stack_Checking if Stack_Check_Probes_On_Target is not set
+       and -fstack-check is specified.
+       (build_binary_op_trapv): Report violatiosn of No_Dependence on both
+       System.Arith_64 and System.Arith_128.
+       (add_decl_expr): If an initialized variable, report a violation of
+       No_Dependence on System.Memory_Copy for large aggregate types.
+       (gnat_to_gnu) <N_Op_Eq>: Report a violation
+       of No_Dependence on System.Memory_Compare for large aggregate types.
+       <N_Assignment_Statement>! Report a violation of No_Dependence on
+       System.Memory_Set, System.Memory_Move or else System.Memory_Copy for
+       large aggregate types.
+       * gcc-interface/utils2.cc (maybe_wrap_malloc): Report a violation of
+       No_Dependence on System.Memory.
+       (maybe_wrap_free): Add GNAT_NODE parameter and report a violation of
+       No_Dependence on System.Memory.
+       (build_call_alloc_dealloc): Adjust call to maybe_wrap_free.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (gnat_to_gnu_entity): Do not set the debug
+       type for vector types.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>:
+       Undo questionable renaming.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (Gigi_Cloned_Subtype): Handle private case.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.cc (gigi): Add one more leading underscore to
+       name of stack checking function.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (Gigi_Cloned_Subtype): New function.
+       (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Call it to get the
+       cloned subtype, if any.
+       <E_Floating_Point_Subtype>: Likewise.
+       <E_Array_Subtype>: Likewise.
+       <E_Record_Subtype>: Likewise.
+       <E_Access_Subtype>: Likewise.
+       Deal with all cloned subtypes on the main path.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>: Do
+       not reuse the TYPE_DECL of the base type.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils.cc (gnat_pushdecl): Build DECL_ORIGINAL_TYPE
+       only for pointer types.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Also accept
+       pointer-to-function types that are not variant of each other.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils.cc (unchecked_convert): Also pad in most cases
+       if the source is not a scalar type but the destination is.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Save
+       and restore the alias set of the dummy pointer-to-array type.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * snames.ads-tmpl (Name_Memory_Compare): New package name.
+       (Name_Memory_Copy): Likewise.
+       (Name_Memory_Move): Likewise.
+       (Name_Memory_Set): Likewise.
+
+2022-07-13  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch13.adb (Check_And_Resolve_Storage_Model_Type_Argument):
+       Call the System.Case_Util.To_Mixed procedure rather than the
+       function, to avoid bootstrap problems.
+
+2022-07-13  Gary Dismukes  <dismukes@adacore.com>
+
+       * aspects.ads (Aspect_Argument): Change the association for
+       Aspect_Storage_Model_Type from Expression to
+       Optional_Expression.
+       * exp_util.ads (Find_Storage_Op): Update comment to indicate
+       that Empty can be returned in the case where a storage-model
+       operation is defaulted.
+       * exp_util.adb (Find_Storage_Op): Allow the function to return
+       Empty in Storage_Model_Type case rather than raising
+       Program_Error, so that Procedure_To_Call fields in N_Allocator
+       and N_Free_Statement nodes will be set to Empty in the defaulted
+       native storage-model case.
+       * sem_ch13.adb: Add with and use of System.Case_Util (and
+       reformat context_clause).
+       (Check_Aspect_At_Freeze_Point): Return with no action for a
+       Storage_Model_Type aspect with no expression (fully-defaulted
+       native memory-model case).
+       (Resolve_Storage_Model_Type_Argument): If an Address_Type has
+       not been explicitly specified, then set Addr_Type to denote type
+       System.Address.
+       (Validate_Storage_Model_Type_Aspect): Return immediately in the
+       case where the aspect has no Expression (fully-defaulted native
+       memory-model case).  No longer issue an error when Address_Type
+       isn't specified, and instead use type System.Address as the
+       default address type. When the address type is
+       System.Address (whether specified or defaulted), no longer issue
+       errors for any other "subaspects" that aren't specified, since
+       in that case those are allowed to default as well. Remove ???
+       comment about needing to check for duplicates, which is now
+       addressed.
+       (Check_And_Resolve_Storage_Model_Type_Argument): New procedure
+       to check that an association for a storage-model subaspect in
+       the aggregate has not been specified earlier in the aggregate,
+       and to then resolve the expression of the association and save
+       the resolved entity. Called by
+       Validate_Storage_Model_Type_Aspect.
+       * sem_util.ads (Storage_Model_Support): Update comments on specs
+       of the functions Get_Storage_Model_Type_Entity,
+       Storage_Model_Address_Type, and Storage_Model_Null_Address to
+       indicate the behavior when the address type is System.Address
+       (the native memory-model case).
+       * sem_util.adb
+       (Storage_Model_Support.Get_Storage_Model_Type_Entity): Suppress
+       the search for the given subaspect name (Nam) when the
+       Storage_Model_Type aspect is fully defaulted (i.e., no
+       Expression is present) and simply return. In cases where the
+       search is done, but no association that matches Nam is found,
+       return System.Address for the Name_Address_Type case, return
+       System.Null_Address for the Name_Null_Address case, and return
+       Empty for all other cases.
+
+2022-07-13  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Relocate_Expression): New routine with code that
+       previously was only applied to Pre and Post aspects.
+       (Analyze_Aspect_Specifications): Apply the above routine to
+       other aspects, in particular to aspects Address, Attach_Handler,
+       Predicate and Interrupt_Priority.
+
+2022-07-13  Piotr Trojanek  <trojanek@adacore.com>
+
+       * inline.adb (Build_Body_To_Inline): Instead of manipulating the
+       Full_Analysis flag, use the Inside_A_Generic flag (which is
+       conveniently manipulated by Start_Generic/End_Generic, together
+       with Expander_Active).
+       * sem_attr.adb (Analyze_Attribute_Old_Result): Adapt comment and
+       assertion to different flag that is set while building
+       body-to-inline.
+
+2022-07-13  Alexandre Oliva  <oliva@adacore.com>
+
+       * doc/gnat_rm/security_hardening_features.rst: Clarify the need
+       for choices after -fzero-call-used-regs and -fstrub.
        * gnat_rm.texi: Regenerate.
 
-2021-06-15  Arnaud Charlet  <charlet@adacore.com>
+2022-07-13  Yannick Moy  <moy@adacore.com>
 
-       * exp_unst.adb (Unnest_Subprogram.Build_Table.Visit_Node): Fix
-       handling of scopes for subprogram calls.
+       * sem_prag.adb (Analyze_Pragma): Recognize a generated subtype
+       with Ghost pragma for generic instantiations.
 
-2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
+2022-07-13  Yannick Moy  <moy@adacore.com>
 
-       * sem_prag.adb: Fix typos in comments related to access types.
-       * sem_util.adb (Is_Access_Variable): Stronger condition.
+       * libgnat/s-aridou.adb (Lemma_Mult_Div, Lemma_Powers): New
+       lemmas.
+       (Prove_Sign_Quotient): New local lemma.
+       (Prove_Signs): Expand definition of Big_R and Big_Q in the
+       postcondition. Add intermediate assertions.
+       (Double_Divide): Call new lemma.
+       (Lemma_Div_Eq): Provide body for proving lemma.
+       (Lemma_Powers_Of_2, Lemma_Shift_Without_Drop,
+       Prove_Dividend_Scaling, Prove_Multiplication, Prove_Z_Low): Call
+       lemmas, add intermediate assertions.
 
-2021-06-15  Arnaud Charlet  <charlet@adacore.com>
+2022-07-13  Piotr Trojanek  <trojanek@adacore.com>
 
-       * Make-generated.in: Add rule to copy runtime files needed
-       during stage1.
-       * raise.c: Remove obsolete symbols used during bootstrap.
-       * gcc-interface/Make-lang.in: Do not use libgnat sources during
-       stage1.
-       (GNAT_ADA_OBJS, GNATBIND_OBJS): Split in two parts, the common
-       part and the part only used outside of stage1.
-       (ADA_GENERATED_FILES): Add runtime files needed during bootstrap
-       when recent APIs are needed.
-       (ada/b_gnatb.adb): Remove prerequisite.
-       * gcc-interface/system.ads: Remove obsolete entries.
+       * inline.adb (Has_Single_Return): Add guard for the subsequent
+       call to Expression.
 
-2021-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * raise-gcc.c (__gnat_personality_seh0): Use PERSONALITY_FUNCTION.
+       * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set Acts_As_Spec
+       earlier if the body is not the completion of a declaration.
+       (Check_Untagged_Equality): Deal with subprogram bodies that are
+       not the completion of a declaration and make sure that they are
+       not flagged when they cause the freezing of the type themselves.
+       Give a warning on the freezing point of the type in more cases.
+       * sem_res.adb (Resolve_Equality_Op): Revert latest change.
+
+2022-07-13  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-arit32.adb (Scaled_Divide32): Add an assertion, move
+       the call of Prove_Sign_R around.
+
+2022-07-13  Marc Poulhiès  <poulhies@adacore.com>
+
+       * exp_ch4.adb (Expand_N_If_Expression): Test for compile time
+       known bounds when handling slices.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_util.ads (Integer_Type_For): Mention Small_Integer_Type_For.
+       (Small_Integer_Type_For): Mention Integer_Type_For.
+
+2022-07-13  Eric Botcazou  <ebotcazou@adacore.com>
 
-2021-06-15  Ed Schonberg  <schonberg@adacore.com>
+       * sem_res.adb (Resolve_Equality_Op): Make sure that the user-defined
+       operator of an untagged record type is declared ahead of an instance
+       before using it to resolve the equality operator in the instance.
 
-       * sem_util.adb (Is_Confirming): Separate the handling of
-       Implicit_Dereference, for which no pragma is generated but which
-       is already checked for legality in Sem_Ch13, including renamed
-       discriminants in a derived type.
-       (Is_Confirming, Same_Name): For expanded names, only check
-       matching of selector, because prefix may correspond to original
-       and derived types with different names and/or scopes. Semantic
-       checks on aspect expression have already verified its legality.
-       Add comments regarding possible gaps in RM description of the
-       feature.
+2022-07-13  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch6.adb (Expand_N_Extended_Return_Statement): Add default
+       initialization for Stmts.
+       * sem_ch12.adb (Analyze_Associations): Add default
+       initialization for Match.
+       * libgnat/a-ztenau.adb (Scan_Enum_Lit): Remove duplicated
+       boolean test.
+       * libgnat/g-spipat.adb (XMatch): Combine duplicated cases.
+
+2022-07-13  Piotr Trojanek  <trojanek@adacore.com>
+
+       * par-prag.adb (Check_Arg_Count): Change parameter type from Int
+       to Nat, because this parameter is compared to Arg_Count variable
+       which is of type Nat. Also, it wouldn't make sense to check for
+       negative number of pragma arguments.
+
+2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch11.adb (Expand_N_Exception_Declaration): Sync comment
+       with declaration in System.Standard_Library.
+
+2022-07-12  Marc Poulhiès  <poulhies@adacore.com>
+
+       * libgnat/s-secsta.adb (Has_Enough_Free_Memory): Check for full
+       chunk before computing the available size.
+
+2022-07-12  Steve Baird  <baird@adacore.com>
+
+       * exp_ch4.adb (Expand_Nonbinary_Modular_Op.Expand_Modular_Op):
+       Reimplement choice of which predefined type to use for the
+       implementation of a predefined operation of a modular type with
+       a non-power-of-two modulus.
+
+2022-07-12  Justin Squirek  <squirek@adacore.com>
+
+       * einfo.ads: Modify documentation for In_Use flag to include
+       scope stack manipulation.
+       * sem_ch8.adb (Use_One_Type): Add condition to return when
+       attempting to detect redundant use_type_clauses in child units
+       in certain cases.
+
+2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * restrict.ads (type ND_Entry): Add System_Child component.
+       (Check_Restriction_No_Dependence_On_System): Declare.
+       * restrict.adb (Global_Restriction_No_Tasking): Move around.
+       (Violation_Of_No_Dependence): New procedure.
+       (Check_Restriction_No_Dependence): Call Violation_Of_No_Dependence
+       to report a violation.
+       (Check_Restriction_No_Dependence_On_System): New procedure.
+       (Set_Restriction_No_Dependenc): Set System_Child component if the
+       unit is a child of System.
+       * snames.ads-tmpl (Name_Arith_64): New package name.
+       (Name_Arith_128): Likewise.
+       (Name_Memory): Likewise.
+       (Name_Stack_Checking): Likewise.
+       * fe.h (Check_Restriction_No_Dependence_On_System): Declare.
+
+2022-07-12  Bob Duff  <duff@adacore.com>
+
+       * par.adb (P_Declarative_Items): New function to parse a
+       sequence of declarative items.
+       (P_Sequence_Of_Statements): Add Handled flag, to indicate
+       whether to wrap the result in a block statement.
+       * par-ch3.adb (P_Declarative_Item): Rename P_Declarative_Items
+       to be P_Declarative_Item, because it really only parses a single
+       declarative item, and to avoid conflict with the new
+       P_Declarative_Items. Add In_Statements.  We keep the old
+       error-recovery mechanisms in place when In_Statements is False.
+       When True, we don't want to complain about statements, because
+       we are parsing a sequence of statements.
+       (P_Identifier_Declarations): If In_Statements, and we see what
+       looks like a statement, we no longer give an error. We return to
+       P_Sequence_Of_Statements with Done = True, so it can parse the
+       statement.
+       * par-ch5.adb (P_Sequence_Of_Statements): Call
+       P_Declarative_Items to parse declarative items that appear in
+       the statement list.  Remove error handling code that complained
+       about such items.  Check some errors conservatively.  Wrap the
+       result in a block statement when necessary.
+       * par-ch11.adb (P_Handled_Sequence_Of_Statements): Pass
+       Handled => True to P_Sequence_Of_Statements.
+       * types.ads (No, Present): New functions for querying
+       Source_Ptrs (equal, not equal No_Location).
+
+2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
+       Fix range of iteration.
+
+2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
+       Do not process expression of unknown restrictions.
+
+2022-07-12  Vasiliy Fofanov  <fofanov@adacore.com>
+
+       * makeusg.adb,
+       doc/gnat_ugn/building_executable_programs_with_gnat.rst: Move -P
+       to the top of switches list and make it clear that gnatmake
+       passes the ball to gprbuild if -P is set.
+       * gnat_ugn.texi: Regenerate.
 
-2021-06-15  Gary Dismukes  <dismukes@adacore.com>
+2022-07-12  Bob Duff  <duff@adacore.com>
 
-       * freeze.adb (Freeze_Subprogram): Don't propagate conventions
-       Intrinsic or Entry to anonymous access-to-subprogram types
-       associated with subprograms having those conventions. Update
-       related comment.
-       * sem_attr.adb (Resolve_Attribute, Attribute_*Access): Remove
-       special-case warning code for cases where a called subprogram
-       has convention Intrinsic as well as its formal's type (the
-       expected type for the Access attribute), since this case can no
-       longer occur.
+       * libgnat/g-socthi__vxworks.adb (C_Connect): Suppress new warning.
 
-2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
+2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
 
-       * exp_imgv.adb (Expand_User_Defined_Enumeration_Image): Fix
-       typos.
+       * sem_attr.adb (Set_Boolean_Result): Simplify using
+       Boolean_Literals.
+
+2022-07-12  Yannick Moy  <moy@adacore.com>
+
+       * errout.adb (Record_Compilation_Errors): Remove global
+       variable.
+       (Compilation_Errors): Simplify.
+       (Initialize): Inline Reset_Warnings.
+       (Reset_Warnings): Remove.
+       * errout.ads (Reset_Warnings): Remove.
+       (Compilation_Errors): Update comment.
+       * gnat1drv.adb (Adjust_Global_Switches): Ignore all frontend
+       warnings in GNATprove mode, except regarding elaboration and
+       suspicious contracts.
+
+2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_util.adb (Caller_Known_Size_Record): Make entry assertion
+       more robust and add guard for null argument.  For protected
+       types, invoke Caller_Known_Size_Record on
+       Corresponding_Record_Type.
+       (Needs_Secondary_Stack): Likewise.
+
+2022-07-12  Doug Rupp  <rupp@adacore.com>
+
+       * libgnat/system-vxworks7-ppc-rtp.ads: Remove
+       * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
 
-2021-06-15  Bob Duff  <duff@adacore.com>
+2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch12.adb (Analyze_Package_Instantiation): Remove dubious
+       call to Set_Comes_From_Source.
+
+2022-07-12  Bob Duff  <duff@adacore.com>
+
+       * sem_ch5.adb (Check_Unreachable_Code): Refine heuristics.
+       * sem_util.ads, sem_util.adb (Is_Static_Constant_Name): Remove
+       this; instead we have a new function Is_Simple_Case in
+       Sem_Ch5.Check_Unreachable_Code.
+
+2022-07-12  Bob Duff  <duff@adacore.com>
+
+       * gnatls.adb (Output_License_Information): Remove pragma
+       No_Return; call sites deal with Exit_Program.
+       * libgnat/g-socthi.adb (C_Connect): Suppress warning about
+       unreachable code.
+       * sem_ch5.adb (Check_Unreachable_Code): Special-case if
+       statements with static conditions.  If we remove unreachable
+       code (including the return statement) from a function, add
+       "raise Program_Error", so we won't warn about missing returns.
+       Remove Original_Node in test for N_Raise_Statement; it's not
+       needed.  Remove test for CodePeer_Mode; if Operating_Mode =
+       Generate_Code, then CodePeer_Mode can't be True.  Misc cleanup.
+       Do not reuse Nxt variable for unrelated purpose (the usage in
+       the Kill_Dead_Code loop is entirely local to the loop).
+       * sem_ch6.adb: Add check for Is_Transfer. Misc cleanup.
+       * sem_prag.adb: Minor.
+       * sem_res.adb: Minor.
+       * sem_util.adb: Minor cleanup.
+       (Is_Trivial_Boolean): Move to nonnested place, so it can be
+       called from elsewhere.
+       (Is_Static_Constant_Boolean): New function.
+       * sem_util.ads (Is_Trivial_Boolean): Export.
+       (Is_Static_Constant_Boolean): New function.
+
+2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-stchop.ads: Use a double underscore prefix for symbols.
+
+2022-07-12  Ed Schonberg  <schonberg@adacore.com>
+
+       * freeze.adb (Check_Expression_Function.Find_Constant): Add a
+       check that a type that is referenced as the prefix of an
+       attribute is fully declared.
+       (Freeze_And_Append): Do not freeze the profile when freezing an
+       expression function.
+       (Freeze_Entity): When a tagged type is frozen, also freeze any
+       primitive operations of the type that are expression functions.
+       * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not prevent
+       freezing associated with an expression function body if the
+       function is a dispatching op.
+
+2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch7.adb (Analyze_Package_Declaration): Check references to
+       unset objects.
+
+2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Analyze_Aspect_Yield): Look at the entity kind,
+       not at the declaration kind.
+
+2022-07-12  Joffrey Huguet  <huguet@adacore.com>
+
+       * libgnarl/a-reatim.ads, libgnat/a-cfdlli.ads,
+       libgnat/a-cfhama.ads, libgnat/a-cfhase.ads,
+       libgnat/a-cfinse.ads, libgnat/a-cfinve.ads,
+       libgnat/a-cforma.ads, libgnat/a-cforse.ads,
+       libgnat/a-chahan.ads, libgnat/a-cofove.ads,
+       libgnat/a-cofuma.ads, libgnat/a-cofuse.ads,
+       libgnat/a-cofuve.ads, libgnat/a-nbnbin.ads,
+       libgnat/a-nbnbre.ads, libgnat/a-ngelfu.ads,
+       libgnat/a-nlelfu.ads, libgnat/a-nllefu.ads,
+       libgnat/a-nselfu.ads, libgnat/a-nuelfu.ads,
+       libgnat/a-strbou.ads, libgnat/a-strfix.ads,
+       libgnat/a-strmap.ads, libgnat/a-strunb.ads,
+       libgnat/a-strunb__shared.ads,  libgnat/a-strsea.ads,
+       libgnat/a-textio.ads, libgnat/a-tideio.ads,
+       libgnat/a-tienio.ads, libgnat/a-tifiio.ads,
+       libgnat/a-tiflio.ads, libgnat/a-tiinio.ads,
+       libgnat/a-timoio.ads, libgnat/i-c.ads, libgnat/interfac.ads,
+       libgnat/interfac__2020.ads, libgnat/s-atacco.ads,
+       libgnat/s-stoele.ads: Annotate packages and subprograms with
+       returning annotations.
+
+2022-07-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * rtsfind.ads (RE_Id): Remove RE_Str_Concat_Bounds_N values.
+       (RE_Unit_Table): Remove RE_Str_Concat_Bounds_N entries.
+       * libgnat/s-conca2.ads (Str_Concat_2): Adjust head comment.
+       (Str_Concat_Bounds_2): Delete.
+       * libgnat/s-conca2.adb (Str_Concat_2): Use the length of the last
+       input to size the last assignment.
+       (Str_Concat_Bounds_2): Delete.
+       * libgnat/s-conca3.ads (Str_Concat_3): Adjust head comment.
+       (Str_Concat_Bounds_3): Delete.
+       * libgnat/s-conca3.adb (Str_Concat_3): Use the length of the last
+       input to size the last assignment.
+       (Str_Concat_Bounds_3): Delete.
+       * libgnat/s-conca4.ads (Str_Concat_4): Adjust head comment.
+       (Str_Concat_Bounds_4): Delete.
+       * libgnat/s-conca4.adb (Str_Concat_4): Use the length of the last
+       input to size the last assignment.
+       (Str_Concat_Bounds_4): Delete.
+       * libgnat/s-conca5.ads (Str_Concat_5): Adjust head comment.
+       (Str_Concat_Bounds_5): Delete.
+       * libgnat/s-conca5.adb (Str_Concat_5): Use the length of the last
+       input to size the last assignment.
+       (Str_Concat_Bounds_5): Delete.
+       * libgnat/s-conca6.ads (Str_Concat_6): Adjust head comment.
+       (Str_Concat_Bounds_6): Delete.
+       * libgnat/s-conca6.adb (Str_Concat_6): Use the length of the last
+       input to size the last assignment.
+       (Str_Concat_Bounds_6): Delete.
+       * libgnat/s-conca7.ads (Str_Concat_7): Adjust head comment.
+       (Str_Concat_Bounds_7): Delete.
+       * libgnat/s-conca7.adb (Str_Concat_7): Use the length of the last
+       input to size the last assignment.
+       (Str_Concat_Bounds_7): Delete.
+       * libgnat/s-conca8.ads (Str_Concat_8): Adjust head comment.
+       (Str_Concat_Bounds_8): Delete.
+       * libgnat/s-conca8.adb (Str_Concat_8): Use the length of the last
+       input to size the last assignment.
+       (Str_Concat_Bounds_8): Delete.
+       * libgnat/s-conca9.ads (Str_Concat_9): Adjust head comment.
+       (Str_Concat_Bounds_9): Delete.
+       * libgnat/s-conca9.adb (Str_Concat_9): Use the length of the last
+       input to size the last assignment.
+       (Str_Concat_Bounds_9): Delete.
+
+2022-07-12  Bob Duff  <duff@adacore.com>
+
+       * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Use _Next and
+       _Previous in the optimized expansion of "for ... of".  No longer
+       need to check parameter profiles for these, because the
+       leading-underscore names are unique.
+       * libgnat/a-convec.ads (_Next, _Previous): Renamings of Next and
+       Previous, to avoid namespace pollution.
+       * libgnat/a-cbdlli.ads, libgnat/a-cbhama.ads,
+       libgnat/a-cbhase.ads, libgnat/a-cbmutr.ads,
+       libgnat/a-cborma.ads, libgnat/a-cborse.ads,
+       libgnat/a-cdlili.ads, libgnat/a-cidlli.ads,
+       libgnat/a-cihama.ads, libgnat/a-cihase.ads,
+       libgnat/a-cimutr.ads, libgnat/a-ciorma.ads,
+       libgnat/a-ciorse.ads, libgnat/a-cobove.ads,
+       libgnat/a-cohama.ads, libgnat/a-cohase.ads,
+       libgnat/a-coinve.ads, libgnat/a-comutr.ads,
+       libgnat/a-coorma.ads, libgnat/a-coorse.ads: Likewise.  Also,
+       remove duplicated comments -- refer to one comment about _Next,
+       _Previous, Pseudo_Reference in libgnat/a-convec.ads. DRY.
+       * scng.adb (Scan): Allow leading underscores in identifiers in
+       the run-time library.
+       * snames.ads-tmpl (Name_uNext, Name_uPrevious): New names with
+       leading underscores.
+
+2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch5.adb (Check_Unreachable_Code): Extend suppression to
+       calls with No_Return aspect, but narrow it to functions.
+       * sem_res.adb (Resolve_Call): Warn about unreachable code after
+       calls with No_Return.
+
+2022-07-12  Bob Duff  <duff@adacore.com>
+
+       * scans.ads: Fix obsolete comments about Tok_Special, and give
+       Special_Character a predicate assuring it is one of the two
+       characters used in preprocessing.
+       * scng.ads: Clean up comments.
+       * scng.adb: Clean up handling of Tok_Special.  Remove comment
+       about '@' (target_name), which doesn't seem very helpful.
+       Set_Special_Character will now blow up if given anything other
+       than '#' and '$', because of the predicate on Special_Character;
+       it's not clear why it used to say "when others => null;".
+       Remove Comment_Is_Token, which is not used.
+       * scn.ads: Remove commented-out use clause.  Remove redundant
+       comment.
+       * ali-util.adb: Use "is null" for do-nothing procedures.
+       * gprep.adb (Post_Scan): Use "is null".
 
-       * einfo-utils.adb (Known_Component_Size,
-       Known_Static_Component_Size, Unknown_Component_Size): Use
-       Implementation_Base_Type instead of Base_Type.
+2022-07-12  Bob Duff  <duff@adacore.com>
 
-2021-06-15  Bob Duff  <duff@adacore.com>
+       * libgnarl/s-solita.adb (Task_Termination_Handler_T): Ignore all
+       exceptions propagated by Specific_Handler.
+       * libgnarl/s-tassta.adb, libgnarl/s-taskin.ads: Minor.
 
-       * gen_il-gen-gen_entities.adb (E_Loop_Parameter): Add
-       Interface_Name field.
+2022-07-12  Marc Poulhiès  <poulhies@adacore.com>
 
-2021-06-15  Bob Duff  <duff@adacore.com>
+       * sem.adb (Preanalyze): Suppress checks when not in GNATprove
+       mode.
+       * sem_res.adb (Preanalyze_And_Resolve): Add cross reference in
+       comment to above procedure.
+       * sinfo.ads: Typo fix in comment.
 
-       * sem_cat.adb (Check_Non_Static_Default_Expr): Allow nonstatic
-       expression in predefined unit with pragma Preelaborate.
+2022-07-12  Julien Bortolussi  <bortolussi@adacore.com>
 
-2021-06-15  Yannick Moy  <moy@adacore.com>
+       * libgnat/a-cfidll.adb, libgnat/a-cfidll.ads: Implementation
+       files of the formal unbounded indefinite list.
+       * Makefile.rtl, impunit.adb: Take into account the add of the
+       new files.
 
-       * doc/gnat_rm/intrinsic_subprograms.rst: More details on shift
-       operations for signed types. Also add the missing Import and
-       Convention on the example.
-       * gnat_rm.texi: Regenerate.
+2022-07-12  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+       * sem_util.adb (Is_Variable): Remove excessive guard.
 
-       * raise-gcc.c: Include <cstdarg> instead of <stdarg.h> in C++.
-       Include <stdbool.h> and unconditionally <stdlib.h> in C.
+2022-07-06  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
+       * gcc-interface/Make-lang.in (ada/generated/gnatvsn.ads):
+       Simplify regular expression. The "interval expression",
+       i.e. \{8\} is part of the POSIX regular expressions, so it
+       should not be a problem for modern implementations of sed.
 
-       * sem_util.ads (Find_Overlaid_Entity): Simplify comment for
-       spec.
-       * sem_util.adb (Find_Overlaid_Entity): Remove defensive code
-       from body.
+2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-2021-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+       * gcc-interface/trans.cc (gnat_to_gnu): Update comment.
 
-       * argv.c: Add include of <stdlib.h> for the runtime.
-       (gnat_argv): Change type to char ** and initialize to NULL.
-       (gnat_envp): Likewise.
-       * argv-lynxos178-raven-cert.c: Add include of <stdlib.h>.
-       (gnat_argv): Change type to char ** and initialize to NULL.
-       (gnat_envp): Likewise.
+2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-2021-06-15  Bob Duff  <duff@adacore.com>
+       * gcc-interface/gigi.h (simple_constant_p): Declare.
+       * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Strip
+       the qualifiers from the type of a simple constant.
+       (simple_constant_p): New predicate.
+       * gcc-interface/trans.cc (node_is_atomic): Return true for objects
+       with atomic type except for simple constants.
+       (node_is_volatile_full_access): Return false for simple constants
+       with VFA type.
 
-       * gen_il-gen.adb (Setter_Needs_Parent): Add missing
-       Then_Actions.  Fix self-contradictory comment.
-       * exp_util.adb (Insert_Actions): Minor comment improvments.
+2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-2021-06-15  Arnaud Charlet  <charlet@adacore.com>
+       * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Create a
+       local constant holding the underlying GNAT type of the object.  Do
+       not fiddle with the object size for an unconstrained array.
 
-       * sem_eval.adb (Eval_Logical_Op, Test_Expression_Is_Foldable):
-       Add support for folding more "and"/"or" expressions.
-       * exp_util.adb (Side_Effect_Free): Fix handling of membership
-       tests.
+2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
+       * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Constify a
+       local variable and move a couple of others around.
 
-       * sem_res.adb (Resolve_Actual): Replace repeated calls to
-       "Etype (F)" with references to "F_Typ", which keeps the results
-       of exactly that call.
+2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-2021-06-15  Bob Duff  <duff@adacore.com>
+       * gcc-interface/trans.cc (gnat_gimplify_expr) <SAVE_EXPR>: New case.
 
-       * gen_il-gen.adb (To_Bit_Offset): Use 'Base to avoid overflow in
-       computations in Last_Bit when Offset = 'Last.
-       (Choose_Offset): Give a better error message when we run out of
-       fields.  In particular, point out that
-       Gen_IL.Internals.Bit_Offset'Last needs to be increased.
+2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-2021-06-15  Bob Duff  <duff@adacore.com>
+       * exp_ch6.adb (Function return mechanisms): New paragraph.
 
-       * atree.ads, einfo-utils.ads, einfo-utils.adb, fe.h, gen_il.adb,
-       gen_il.ads, gen_il-gen-gen_entities.adb,
-       gen_il-gen-gen_nodes.adb, sem_ch12.adb, sem_ch3.adb,
-       sem_util.adb, sinfo-utils.ads, treepr.adb, types.ads: Clean up
-       ??? comments and other comments.
-       * atree.adb: Clean up ??? comments and other comments.
-       (Validate_Node): Fix bug: "Off_0 (N) < Off_L (N)"
-       should be "Off_0 (N) <= Off_L (N)".
-       * gen_il-gen.adb, gen_il-gen.ads: Clean up ???
-       comments and other comments.  Add support for getter-specific
-       and setter-specific preconditions.  Detect the error of putting
-       a field in the wrong subrange.  Misc cleanup.
-       (Node_Field vs. Entity_Field): Clean up Nmake.  Improve
-       comments.
-       * gen_il-utils.ads: Misc cleanup. Move...
-       * gen_il-internals.ads: ... here.
-       * gen_il-utils.adb: Misc cleanup. Move...
-       * gen_il-internals.adb: ... here.
-       * gen_il-fields.ads: Move Was_Default_Init_Box_Association,
-       which was in the wrong subrange.  Add comments.  Misc cleanup.
-       * gen_il-types.ads: Add Named_Access_Kind.
-       * sinfo-cn.adb: Clean up ??? comments and other comments.
-       Remove redundant assertions.
-       * einfo.ads, sinfo.ads: Clean up ??? comments and other
-       comments.  Remove all the comments indicating field offsets.
-       These are obsolete now that Gen_IL computes the offsets
-       automatically.
-
-2021-06-15  Arnaud Charlet  <charlet@adacore.com>
-
-       * einfo.ads, errout.adb, errout.ads, exp_aggr.adb, exp_ch5.adb,
-       exp_ch6.adb, exp_ch8.adb, exp_ch9.adb, exp_imgv.adb,
-       exp_put_image.adb, fe.h, impunit.adb, impunit.ads,
-       libgnat/a-cobove.ads, libgnat/a-convec.ads, opt.ads,
-       par-ch12.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
-       par-ch6.adb, par-prag.adb, par-util.adb, scans.ads, scng.adb,
-       sem_aggr.adb, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
-       sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb,
-       sem_ch8.adb, sem_elab.adb, sem_eval.adb, sem_prag.adb,
-       sem_res.adb, sem_type.adb, sem_util.adb, sem_util.ads,
-       sinfo.ads, snames.ads-tmpl, sprint.adb, switch-c.adb, usage.adb,
-       doc/gnat_ugn/building_executable_programs_with_gnat.rst,
-       doc/gnat_rm/implementation_defined_aspects.rst,
-       gcc-interface/trans.c: Update all references to Ada 2020 to Ada
-       2022. Rename pragma Ada_2020 to Ada_2022.  Update documentation
-       accordingly.
-       * gnat_ugn.texi, gnat_rm.texi: Regenerate.
+2022-07-06  Yannick Moy  <moy@adacore.com>
+
+       * sem_util.adb (Is_Non_Preelaborable_Construct): Fix for
+       deferred constants.
 
-2021-06-15  Steve Baird  <baird@adacore.com>
-
-       * sem_util.adb (Gather_Components): Factor the test that was
-       already being used to govern emitting a pre-Ada_2020 error
-       message into an expression function,
-       OK_Scope_For_Discrim_Value_Error_Messages. Call that new
-       function in two places: the point where the same test was being
-       performed previously, and in governing emission of a newer
-       Ada_2020 error message. In both cases, the out-mode parameter
-       Gather_Components.Report_Errors is set to True even if no error
-       messages are generated within Gather_Components.
-       * sem_util.ads: Correct a comment.
-
-2021-06-15  Richard Kenner  <kenner@adacore.com>
-
-       * sem_ch3.adb (Array_Type_Declaration, Build_Derived_Type):
-       Reinitialize Stored_Constraint when needed.
-       (Set_Modular_Size): Likewise.
-       * atree.adb: (Check_Vanishing_Fields): Add node id to debugging
-       information.
-
-2021-06-15  Bob Duff  <duff@adacore.com>
-
-       * sem_util.adb (Propagate_Invariant_Attributes): Call
-       Set_Has_Own_Invariants on the base type, because these are
-       Base_Type_Only. The problem is that the base type of a type is
-       indeed a base type when Set_Base_Type is called, but then the
-       type is mutated into a subtype in rare cases.
-       * atree.ads, atree.adb (Is_Entity): Export. Correct subtype of
-       parameter in body.
-       * gen_il-gen.adb: Improve getters so that "Pre => ..." can refer
-       to the value of the field. Put Warnings (Off) on some with
-       clauses that are not currently used, but might be used by such
-       Pre's.
-
-2021-06-15  Piotr Trojanek  <trojanek@adacore.com>
-
-       * sem_ch3.adb (Access_Type_Declaration): Add comments to explain
-       the ordering of Mutate_Kind and Set_Directly_Designated_Type;
-       remove temporary setting of Ekind to E_Access_Type for building
-       _master objects, since now the Ekind is already set to its final
-       value. Move repeated code into Setup_Access_Type routine and use
-       it so that Process_Subtype is executed before mutating the kind
-       of the type entity.
-       * gen_il-gen-gen_entities.adb (Gen_Entities): Remove
-       Directly_Designated_Type from E_Void, E_Private_Record,
-       E_Limited_Private_Type and Incomplete_Kind; now it only belongs
-       to Access_Kind entities.
-       * sem_util.adb: Minor reformatting.
+2022-07-06  Justin Squirek  <squirek@adacore.com>
 
-2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>
+       * libgnat/s-regpat.adb, libgnat/s-regpat.ads (Compile): Add a
+       new defaulted parameter Error_When_Too_Small to trigger an
+       error, if specified true, when Matcher is too small to hold the
+       compiled regex program.
 
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Add PAT
-       local constant and use it throughout.  If it is set, use a ref-all
-       pointer type for the pointer-to-array field of the fat pointer type.
-       <E_Array_Subtype>: Add PAT local constant and use it throughout.
-
-2021-05-26  Jakub Jelinek  <jakub@redhat.com>
-
-       * init.c (__gnat_error_handler): Remove register keyword.
-
-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.
+2022-07-06  Justin Squirek  <squirek@adacore.com>
 
-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.
+       * sem_ch4.adb (Analyze_Selected_Component): Add condition to
+       avoid interpreting derived type components as candidates for
+       selected components in preanalysis of inherited class
+       conditions.
+
+2022-07-06  Yannick Moy  <moy@adacore.com>
+
+       * ghost.adb (Check_Ghost_Context): Delay checking for generic
+       associations.
+       (Check_Ghost_Context_In_Generic_Association): Perform ghost
+       checking in analyzed generic associations.
+       (Check_Ghost_Formal_Procedure_Or_Package): Check SPARK RM
+       6.9(13-14) for formal procedures and packages.
+       (Check_Ghost_Formal_Variable): Check SPARK RM 6.9(13-14) for
+       variables.
+       * ghost.ads: Declarations for the above.
+       * sem_ch12.adb (Analyze_Associations): Apply delayed checking
+       for generic associations.
+       (Analyze_Formal_Object_Declaration): Same.
+       (Analyze_Formal_Subprogram_Declaration): Same.
+       (Instantiate_Formal_Package): Same.
+       (Instantiate_Formal_Subprogram): Same.
+       (Instantiate_Object): Same.  Copy ghost aspect to newly declared
+       object for actual for IN formal object. Use new function
+       Get_Enclosing_Deep_Object to retrieve root object.
+       (Instantiate_Type): Copy ghost aspect to declared subtype for
+       actual for formal type.
+       * sem_prag.adb (Analyze_Pragma): Recognize new allowed
+       declarations.
+       * sem_util.adb (Copy_Ghost_Aspect): Copy the ghost aspect
+       between nodes.
+       (Get_Enclosing_Deep_Object): New function to return enclosing
+       deep object (or root for reachable part).
+       * sem_util.ads (Copy_Ghost_Aspect): Same.
+       (Get_Enclosing_Deep_Object): Same.
+       * libgnat/s-imageu.ads: Declare formal subprograms as ghost.
+       * libgnat/s-valuei.ads: Same.
+       * libgnat/s-valuti.ads: Same.
+
+2022-07-06  Javier Miranda  <miranda@adacore.com>
+
+       * sem_res.adb (Resolve_Type_Conversion): Code cleanup since the
+       previous static check has been moved to Valid_Tagged_Conversion.
+       (Valid_Tagged_Conversion): Fix the code checking conversion
+       to/from interface types since incorrectly returns True when the
+       parent type of the operand type (or the target type) is an
+       interface type; add missing static checks on interface type
+       conversions.
+
+2022-07-06  Marc Poulhiès  <poulhies@adacore.com>
+
+       * libgnat/s-secsta.ads (SS_Allocate): Add new Alignment
+       parameter.
+       (Memory_Alignment): Remove.
+       * libgnat/s-secsta.adb (Align_Addr): New.
+       (SS_Allocate): Add new Alignment parameter. Realign pointer if
+       needed. Don't allocate anything for 0-sized allocations.
+       * gcc-interface/utils2.cc (build_call_alloc_dealloc_proc): Add
+       allocated object's alignment as last parameter to allocation
+       invocation.
 
-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.
+2022-07-06  Piotr Trojanek  <trojanek@adacore.com>
 
-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.
-
-2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Process
-       the implementation type of a packed type implemented specially.
-
-2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Always translate
-       the Is_Pure flag into the "pure" attribute of GNU C.
-
-2021-05-21  Eric Botcazou  <ebotcazou@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.
+       * libgnat/g-socket.adb (Get_Address_Info): Reduce scope of the
+       Found variable; avoid repeated assignment inside the loop.
 
-2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+2022-07-06  Doug Rupp  <rupp@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.
+       * Makefile.rtl [arm,aarch64 vxworks7]: Remove rtp and kernel
+       build macros and set an error variable if needed.
+       [x86,x86_vxworks7]: Likewise.
+       [ppc,ppc64]: Set an error variable if needed.
+       (rts-err): New phony Makefile target.
+       (setup-rts): Depend on rts-err.
 
-2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+2022-07-06  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.
+       * exp_ch3.adb (Make_Allocator_For_BIP_Return): New local function.
+       (Expand_N_Object_Declaration): Use it to build the three allocators
+       for a Build-In-Place return with an unconstrained type.  Update the
+       head comment after other recent changes.
+
+2022-07-06  Doug Rupp  <rupp@adacore.com>
+
+       * libgnat/system-vxworks7-e500-kernel.ads: Remove.
+       * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
 
-2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+2022-07-06  Justin Squirek  <squirek@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.
+       * gnat_cuda.adb (Empty_CUDA_Global_Subprogram): Set
+       Specification and Corresponding_Spec to match the original
+       Kernel_Body.
 
-2021-05-14  Martin Liska  <mliska@suse.cz>
+2022-07-06  Piotr Trojanek  <trojanek@adacore.com>
 
-       * doc/Makefile: Add gnat-style target.
-       * doc/share/conf.py: Likewise.
-       * doc/gnat-style.rst: New file.
+       * exp_ch6.adb (Build_Static_Check_Helper_Call): Replace explicit
+       call to Make_Unchecked_Type_Conversion with a call to
+       Unchecked_Convert_To.
+       * tbuild.adb (Unchecked_Convert_To): Fix whitespace.
 
-2021-05-12  Bob Duff  <duff@adacore.com>
+2022-07-06  Piotr Trojanek  <trojanek@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
+       * sem_res.adb (Resolve_Actuals): Restore first sentence of a
        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.
+
+2022-07-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_aggr.adb (Expand_Record_Aggregate): Do not call
+       Is_Full_Access_Aggregate here.
+       * freeze.ads (Is_Full_Access_Aggregate): Delete.
+       * freeze.adb (Is_Full_Access_Aggregate): Move to...
+       (Freeze_Entity): Do not call Is_Full_Access_Aggregate here.
+       * sem_aggr.adb (Is_Full_Access_Aggregate): ...here
+       (Resolve_Aggregate): Call Is_Full_Access_Aggregate here.
+
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst
+       (Warning Message Control): Update description of switch -gnatwj.
        * gnat_ugn.texi: Regenerate.
+       * sem_ch10.adb (Analyze_With_Clause): Warn on WITH clauses for
+       obsolete renamed units; in Ada 83 mode do not consider
+       predefined renamings to be obsolete.
 
-2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
+2022-07-05  Eric Botcazou  <ebotcazou@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.
+       * exp_util.adb (Make_Subtype_From_Expr): Do not set field to Empty.
+       * sem_util.adb (Visit_Itype): Remove ??? comment.
 
-2021-05-07  Piotr Trojanek  <trojanek@adacore.com>
+2022-07-05  Piotr Trojanek  <trojanek@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_attr.adb (Note_Possible_Modification): Revert a
+       special-case for validity checks on Long_Float type.
+       * snames.ads-tmpl (Name_Attr_Long_Float): Remove name added
+       exclusively for the mentioned fix.
 
-2021-05-07  Ed Schonberg  <schonberg@adacore.com>
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * 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.
+       * sem_ch6.adb (Set_Formal_Mode): Remove unnecessary setting of
+       Never_Set_In_Source.
 
-2021-05-07  Gary Dismukes  <dismukes@adacore.com>
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * 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.
+       * sem_ch6.adb (Process_Formals): Avoid repeated calls to
+       Expression.
 
-2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * libgnat/s-fatgen.adb (Scaling): Raise Constraint_Error in the
-       overflow case when T'Machine_Overflows is True.
+       * exp_code.adb (Setup_Asm_IO_Args): Remove guard against No_List.
+       * par_sco.adb (Process_Decisions): Likewise.
+       * sem_ch13.adb (Check_Component_List): Likewise.
+       * sem_ch6.adb (FCL): Likewise.
 
-2021-05-07  Bob Duff  <duff@adacore.com>
+2022-07-05  Doug Rupp  <rupp@adacore.com>
 
-       * libgnat/a-conhel.adb (TC_Check): Move the Assert into the
-       'if'.
+       * cstreams.c (__gnat_full_name) [QNX]: Remove block.
 
-2021-05-07  Frederic Konrad  <konrad@adacore.com>
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sigtramp-vxworks-target.inc: Use a local label for the TOC.
+       * osint.adb (Locate_File): Use Name_Find with a parameter and
+       not with a global buffer.
 
-2021-05-07  Claire Dross  <dross@adacore.com>
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * exp_ch4.adb (Has_Inferable_Discriminants): Moved to Sem_Util.
-       * sem_util.ads, sem_util.adb (Has_Inferable_Discriminants):
-       Moved from Exp_Ch4.
+       * exp_ch3.adb (Build_Init_Statements): Reuse Get_Pragma_Arg.
+       * exp_prag.adb (Arg_N): Likewise.
 
-2021-05-07  Ed Schonberg  <schonberg@adacore.com>
+2022-07-05  Yannick Moy  <moy@adacore.com>
 
-       * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity):
-       Add guard to verify that the enclosing pragma is a precondition.
+       * ghost.adb (Is_OK_Ghost_Context): Detect ghost type inside object
+       renaming.
 
-2021-05-06  Javier Miranda  <miranda@adacore.com>
+2022-07-05  Bob Duff  <duff@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.
+       * exp_ch7.adb: Change two constants Is_Protected_Body and
+       Is_Prot_Body to be Is_Protected_Subp_Body; these are not true
+       for protected bodies, but for protected subprogram bodies.
+       (Expand_Cleanup_Actions): No need to search for
+       Activation_Chain_Entity; just use Activation_Chain_Entity.
+       * sem_ch8.adb (Find_Direct_Name): Use Entyp constant.
+       * atree.adb, atree.ads, atree.h, nlists.adb, nlists.ads
+       (Parent): Provide nonoverloaded versions of Parent, so that they
+       can be easily found in the debugger.
+       * debug_a.adb, debug_a.ads: Clarify that we're talking about the
+       -gnatda switch; switches are case sensitive.  Print out the
+       Chars field if appropriate, which makes it easier to find things
+       in the output.
+       (Debug_Output_Astring): Simplify. Also fix an off-by-one
+       bug ("for I in Vbars'Length .." should have been "for I in
+       Vbars'Length + 1 ..").  Before, it was printing Debug_A_Depth +
+       1 '|' characters if Debug_A_Depth > Vbars'Length.
+
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Analyze_Pragma): Remove unnecessary call to
+       Analyze.
+
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * libgnat/g-socket.adb (Raise_Host_Error): Add No_Return aspect.
+       (Raise_GAI_Error): Likewise.
+       * libgnat/g-socket.ads (Raise_Socket_Error): Likewise.
+
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb (Aggregate_Constraint_Checks): Fix whitespace;
+       refactor repeated code; replace a ??? comment with an
+       explanation based on the comment for the routine spec.
+
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.ads (Note_Possible_Modification): Fix occurrence of
+       May_Be_Modified in comment.
+       * sem_warn.ads (Check_Unset_Reference): Fix occurrence of
+       Not_Assigned in comment.
+
+2022-07-05  Yannick Moy  <moy@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute): Take into account the
+       possibility of homonyms.
+
+2022-07-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite as a renaming
+       for any nonaliased local object with nominal unconstrained subtype
+       originally initialized with the result of a function call that has
+       been rewritten as the dereference of a reference to the result.
+       * sem_ch3.adb (Analyze_Object_Declaration): Do not do it here
+
+2022-07-05  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_imgv.adb (Build_Enumeration_Image_Tables): Also disable
+       perfect hash in GNAT_Mode.
+       * raise-gcc.c (__gnat_Unwind_RaiseException): Add support for
+       disabling exception propagation.
+       * sem_eval.adb (Compile_Time_Known_Value): Update comment and
+       remove wrong call to Check_Error_Detected.
+       * sem_prag.adb (Check_Loop_Pragma_Grouping, Analyze_Pragma):
+       Remove exception propagation during bootstrap.
+
+2022-07-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_aggr.adb (Expand_Array_Aggregate): Remove obsolete code.
+       Delay the expansion of aggregates initializing return objects of
+       build-in-place functions.
+       * exp_ch3.ads (Ensure_Activation_Chain_And_Master): Delete.
+       * exp_ch3.adb (Ensure_Activation_Chain_And_Master): Fold back to...
+       (Expand_N_Object_Declaration): ...here.
+       Perform the expansion of return objects of build-in-place functions
+       here instead of...
+       * exp_ch6.ads (Is_Build_In_Place_Return_Object): Declare.
+       * exp_ch6.adb (Expand_N_Extended_Return_Statement): ...here.
+       (Is_Build_In_Place_Result_Type): Alphabetize.
+       (Is_Build_In_Place_Return_Object): New predicate.
+       * exp_ch7.adb (Enclosing_Function): Delete.
+       (Process_Object_Declaration): Tidy up handling of return objects.
+       * sem_ch3.adb (Analyze_Object_Declaration): Do not decorate and
+       freeze the actual type if it is the same as the nominal type.
+       * sem_ch6.adb: Remove use and with clauses for Exp_Ch3.
+       (Analyze_Function_Return): Analyze again all return objects.
+       (Create_Extra_Formals): Do not force the definition of an Itype
+       if the subprogram is a compilation unit.
+
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * gnatls.adb (Corresponding_Sdep_Entry): Remove dead return
+       statement in defensive path; there is another return statement
+       for a normal execution of this routine, so rule Ada RM 6.5(5),
+       which requires function to have at least one return statement is
+       still satisfied.
+       (Gnatls): Remove dead, call to nonreturning Exit_Program after
+       Output_License_Information which itself does not return.
+       * libgnat/a-exstat.adb (Bad_EO): Remove raise statement that was
+       meant to please some ancient version of GNAT.
+       * libgnat/g-awk.adb (Raise_With_Info): Likewise.
+       * sem_attr.adb (Check_Reference): Remove dead return statement;
+       rule Ada RM 6.5(5), which requires function to have at least one
+       return statement is still satisfied.
+       (Analyze_Attribute): Remove dead exit statement.
+       (Check_Reference): Same as above.
+       * sem_ch12.adb (Instantiate_Formal_Package): Remove dead raise
+       statement; it was inconsistent with other calls to
+       Abandon_Instantiation, which are not followed by a raise
+       statement.
+       * sem_prag.adb (Process_Convention): Remove dead defensive
+       assignment.
+       (Interrupt_State): Remove dead defensive exit statement.
+       (Do_SPARK_Mode): Likewise.
+       * sfn_scan.adb (Scan_String): Remove dead defensive assignment.
+
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_attr.adb, sem_prag.adb: Remove dead return statements
+       after calls to Error_Attr, Error_Pragma, Error_Pragma_Arg and
+       Placement_Error. All these calls raise exceptions that are
+       handled to gently recover from errors.
+
+2022-07-05  Doug Rupp  <rupp@adacore.com>
+
+       * libgnat/system-vxworks-ppc-kernel.ads (Word_Size): Compute
+       based on Standard'Word_Size.
+       (Memory_Size): Compute based on Word_Size.
+       * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
 
-2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_ch3.adb (Constraint_Index): Remove redundant problematic
-       analysis.
+       * sem_attr.adb (Analyze_Attribute): Move call to
+       Set_Address_Taken so that it is executed when the prefix
+       attribute is legal.
 
-2021-05-06  Arnaud Charlet  <charlet@adacore.com>
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * exp_unst.adb (Note_Uplevel_Bound): Exclude
-       E_Enumeration_Literal.
+       * sem_ch5.adb (Check_Unreachable_Code): Avoid explicit use of
+       Sloc; this should also help when we finally use Source_Span for
+       prettier error messages.
 
-2021-05-06  Arnaud Charlet  <charlet@adacore.com>
+2022-07-05  Piotr Trojanek  <trojanek@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.
+       * sem_ch5.adb (Check_Unreachable_Code): Remove redundant guard;
+       the call to Present wasn't needed either.
 
-2021-05-06  Boris Yakobowski  <yakobowski@adacore.com>
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * gnat1drv.adb (Adjust_Global_Switches): Simplify logic.
+       * sem_ch5.adb (Analyze_Block_Statement): Call to List_Length with
+       No_List is safe and will return zero.
 
-2021-05-06  Arnaud Charlet  <charlet@adacore.com>
+2022-07-05  Piotr Trojanek  <trojanek@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).
+       * sem_ch6.adb (Check_Missing_Return): Add reference to an RM rule.
 
-2021-05-06  Ghjuvan Lacambre  <lacambre@adacore.com>
+2022-07-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * make.adb (Compute_Executable): Document parameter.
+       * sem_ch6.adb (Check_Missing_Return): Remove outdated comment.
 
-2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+2022-07-05  Dmitriy Anisimkov  <anisimko@adacore.com>
 
-       * libgnat/s-fatgen.adb (Scaling): Use single handling of
-       underflow.  Add pragma Annotate.
+       * adaint.h (convert_addresses): Remove function declaration.
 
-2021-05-06  Ghjuvan Lacambre  <lacambre@adacore.com>
+2022-07-05  Doug Rupp  <rupp@adacore.com>
 
-       * sem_eval.adb (Is_OK_Static_Subtype): Call Is_Static_Subtype,
-       remove redundant checks.
+       * Makefile.rtl (*vxworks*): Remove most pre-vxworks7 code.
+       * vxworks-arm-link.spec: Remove.
+       * vxworks-e500-link.spec: Likewise.
+       * vxworks-smp-arm-link.spec: Likewise.
+       * vxworks-smp-e500-link.spec: Likewise.
+       * vxworks-smp-x86-link.spec: Likewise.
+       * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks-arm-rtp.ads: Likewise.
+       * libgnat/system-vxworks-arm.ads: Likewise.
+       * libgnat/system-vxworks-e500-kernel.ads: Likewise.
+       * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks-e500-rtp.ads: Likewise.
+       * libgnat/system-vxworks-x86-kernel.ads: Likewise.
+       * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks-x86-rtp.ads: Likewise.
 
-2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
+2022-07-04  Eric Botcazou  <ebotcazou@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_disp.adb (Check_Dispatching_Call): Merge the two special cases
+       where there are no controlling actuals but tag-indeternminate ones.
 
-2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
+2022-07-04  Eric Botcazou  <ebotcazou@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.
+       * exp_disp.adb (Expand_Dispatching_Call): Fix detection of calls
+       that are dispatching on tagged result.
 
-2021-05-06  Ed Schonberg  <schonberg@adacore.com>
+2022-07-04  Doug Rupp  <rupp@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.
+       * Makefile.rtl (ADA_EXCLUDE_SRCS): Add s-qnx.ads.
 
-2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * libgnat/s-fatgen.adb (Scaling): Fix off-by-one bug for underflow.
+       * exp_ch3.adb (Expand_N_Object_Declaration) <OK_To_Rename_Ref>: New
+       local function.
+       <Rewrite_As_Renaming>: Change to a local variable whose value is
+       computed once and generate a call to Finalize after this is done.
+       Simplify the code creating the renaming at the end.
 
-2021-05-06  Arnaud Charlet  <charlet@adacore.com>
+2022-07-04  Doug Rupp  <rupp@adacore.com>
 
-       * sem_ch6.adb (Is_Inline_Pragma): Protect against N not being a
-       list member in both branches.
+       * Makefile.rtl (GCC_SPEC_FILES): Remove vxworks cert files.
 
-2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
+2022-07-04  Piotr Trojanek  <trojanek@adacore.com>
 
-       * libgnat/a-cofove.adb (Insert_Space): Remove hardcoded pragma
-       Warnings.
+       * sem_attr.adb (Resolve_Attribute): Refactor duplicated code for
+       Count and Index attributes.
+
+2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * checks.adb (Apply_Length_Check_On_Assignment): Return early if
+       the Suppress_Assignment_Checks flag is set.
+       (Selected_Range_Checks): Deal with conditional expressions.
+       * exp_ch4.adb (Too_Large_Length_For_Array): New constant.
+       (Expand_Concatenate): Use it in lieu of Too_Large_Max_Length.
+       (Expand_N_If_Expression): If the result has a unidimensional array
+       type but the dependent expressions have constrained subtypes with
+       known bounds, create a static temporary on the stack with a subtype
+       covering the result.
+       (Get_First_Index_Bounds): Deal with string literals.
+       * uintp.ads (Uint_256): New deferred constant.
+       * sinfo.ads (Suppress_Assignment_Checks): Document new usage.
+
+2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch3.adb (Expand_N_Object_Declaration.Rewrite_As_Renaming):
+       Do not rewrite if the declaration has got constraints.
+       * sinfo.ads (Case Expression Alternative): Fix typo.
+
+2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch3.adb (Expand_N_Object_Declaration.Rewrite_As_Renaming):
+       Be prepared for slices.
+       * exp_ch4.adb (Get_First_Index_Bounds): New procedure.
+       (Expand_Array_Comparison.Length_Less_Than_4): Call it.
+       (Expand_Concatenate): Try to compute a maximum length for
+       operands with variable length and a maximum total length at the
+       end.  If the concatenation is dynamic, but a sensible maximum
+       total length has been computed, use this length to create a
+       static array subtype for the temporary and return a slice of it.
+
+2022-07-04  Steve Baird  <baird@adacore.com>
+
+       * sem_ch3.adb (Check_Possible_Deferred_Completion): Delete
+       Prev_Obj_Def formal parameter.  Reorganize code so that
+       statically matching check is also performed in the case where
+       the subtype given in the initial declaration is constrained and
+       the subtype given in the completion is not.
+
+2022-07-04  Bob Duff  <duff@adacore.com>
+
+       * einfo-utils.ads, einfo-utils.adb: Add predicates on subtypes E
+       and N.  Change some parameters to use the unpredicated subtypes,
+       because they sometimes return e.g. Empty.  Note that N_Entity_Id
+       has a predicate; Entity_Id does not.
+       * exp_tss.adb (Base_Init_Proc): Use Entity_Id instead of E,
+       because otherwise we fail the predicate. We shouldn't be
+       referring to single-letter names from far away anyway.
+       * sem_aux.adb (Is_Derived_Type): Likewise.
+       * sem_res.adb (Is_Definite_Access_Type): Use N_Entity_Id for
+       predicate.
+       * types.ads (Entity_Id): Add comment explaining the difference
+       between Entity_Id and N_Entity_Id.
+
+2022-07-04  Justin Squirek  <squirek@adacore.com>
+
+       * exp_util.adb (Remove_Side_Effects): Combine identical
+       branches.
+       * sem_attr.adb (Analyze_Attribute): Combine identical cases
+       Attribute_Has_Same_Storage and Attribute_Overlaps_Storage.
+       * sem_prag.adb (Check_Role): Combine E_Out_Parameter case with
+       general case for parameters.
+       * sem_util.adb (Accessibility_Level): Combine identical
+       branches.
+       * sprint.adb (Sprint_Node_Actual): Combine cases for
+       N_Real_Range_Specification and N_Signed_Integer_Type_Definition.
+
+2022-07-04  Justin Squirek  <squirek@adacore.com>
+
+       * libgnat/s-os_lib.adb (Quote_Argument): Modify the result
+       buffer size calculation to handle the case where Arg'Length is
+       1.
+
+2022-07-04  Bob Duff  <duff@adacore.com>
+
+       * exp_util.adb (Expand_Subtype_From_Expr): Generate a new
+       subtype when Is_Constr_Subt_For_UN_Aliased is True, so the
+       Is_Constr_Subt_For_U_Nominal flag will not be set on the
+       preexisting subtype.
+       * sem_attr.adb, sem_ch3.adb: Minor.
+
+2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * debug.adb (d.9): Remove usage.
+       * exp_ch6.adb (Expand_Simple_Function_Return): Remove redundant
+       test on Debug_Flag_Dot_L.
+       (Is_Build_In_Place_Result_Type): Return false for nonlimited types.
+       (Is_Build_In_Place_Function): Tidy up and remove redundant test on
+       Debug_Flag_Dot_L.
+
+2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch3.adb (Expand_N_Object_Declaration): Don't adjust the object
+       if the expression is a function call.
+       <Rewrite_As_Renaming>: Return true if the object needs finalization
+       and is initialized  with the result of a function call returned on
+       the secondary stack.
+       * exp_ch6.adb (Expand_Ctrl_Function_Call): Add Use_Sec_Stack boolean
+       parameter.  Early return if the parent is an object declaration and
+       Use_Sec_Stack is false.
+       (Expand_Call_Helper): Adjust call to Expand_Ctrl_Function_Call.
+       * exp_ch7.adb (Find_Last_Init): Be prepared for initialization still
+       present in the object declaration.
+       * sem_ch3.adb (Analyze_Object_Declaration): Call the predicates
+       Needs_Secondary_Stack and Needs_Finalization to guard the renaming
+       optimization.
 
-2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
+2022-07-04  Bob Duff  <duff@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.
+       * libgnat/a-cbhase.ads, libgnat/a-cborse.ads,
+       libgnat/a-cihase.ads, libgnat/a-ciorse.ads,
+       libgnat/a-cohase.ads, libgnat/a-coorse.ads (Key): New function
+       that takes a Container parameter, implemented as an expression
+       function, so it is self explanatory (doesn't need a comment).
 
-2021-05-06  Justin Squirek  <squirek@adacore.com>
+2022-07-04  Vasiliy Fofanov  <fofanov@adacore.com>
 
-       * checks.adb (Make_Discriminant_Constraint_Check): Add check for
-       null when the type being converted is an access type.
+       * doc/gnat_rm/the_gnat_library.rst: Fix length of title
+       underlines.
 
-2021-05-06  Arnaud Charlet  <charlet@adacore.com>
+2022-07-04  Steve Baird  <baird@adacore.com>
 
-       * exp_pakd.adb (Expand_Packed_Eq): Fix handling of PATs.
+       * sem_ch4.adb (Analyze_Allocator): After calling Insert_Action
+       to insert a subtype declaration associated with an allocator,
+       the subtype declaration will usually be analyzed. But not
+       always. Add an explicit call to Preanalyze to cope with the
+       unusual case. The subtype declaration must be at least
+       preanalyzed before the call to Sem_Ch3.Process_Subtype a little
+       while later, during which we analyze an identifier that refers
+       to the subtype.
 
-2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
+2022-07-04  Steve Baird  <baird@adacore.com>
 
-       * osint.adb (Read_Library_Info_From_Full): Cleanup unused
-       initial value.
+       * sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not
+       generate a warning if the expression in question is an assertion
+       expression, or a subexpression thereof. But do call
+       Test_Comparison so that it can generate warnings for the cases
+       that it generates warnings for.
+       * sem_prag.ads: Modify Assertion_Expression_Pragma constant so
+       that the predicate Sem_Util.In_Assertion_Expression_Pragma
+       returns True for the expression of a Compile_Time_Error pragma.
 
-2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+2022-07-04  Julien Bortolussi  <bortolussi@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.
+       * doc/gnat_rm/the_gnat_library.rst: Add the new entry.
        * gnat_rm.texi: Regenerate.
 
-2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * init.c (__gnat_init_float): Use full version on Linux too.
+       * sem_res.adb (Resolve_Comparison_Op): Deal with ambiguous operands
+       in all cases.
+       (Resolve_Equality_Op): Likewise, except for the case of the implicit
+       inequality operator created for a user-defined operator that is not
+       an intrinsic subprogram.
 
-2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+2022-07-04  Bob Duff  <duff@adacore.com>
 
-       * libgnat/s-fatgen.adb (Valid): Do a bit comparison with 0.0
-       when denormalized numbers are not supported.
+       * libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
+       libgnat/a-cborse.adb, libgnat/a-cborse.ads,
+       libgnat/a-cihase.adb, libgnat/a-cihase.ads,
+       libgnat/a-ciorse.adb, libgnat/a-ciorse.ads,
+       libgnat/a-cohase.adb, libgnat/a-cohase.ads,
+       libgnat/a-conhel.adb, libgnat/a-conhel.ads,
+       libgnat/a-coorse.adb, libgnat/a-coorse.ads: Add Has_Element,
+       Element, Query_Element, and Next subprograms that take a Set
+       parameter. Add Tampering_With_Cursors_Prohibited function. These
+       are all new in Ada 2022.
 
-2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
+2022-07-04  Claire Dross  <dross@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.
+       * doc/gnat_rm/the_gnat_library.rst: Functional vectors, sets,
+       and maps are now controlled.
+       * gnat_rm.texi: Regenerate.
 
-2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
+2022-07-04  Claire Dross  <dross@adacore.com>
 
-       * sem_attr.adb (Analyze_Image_Attribute): Remove redundant
-       condition; add a missing header box.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst
+       (Debugging and Assertion Control): Add GNAT specific assertion
+       pragmas to the equivalent Assertion_Policy for the -gnata
+       option.
+       * gnat_ugn.texi: Regenerate.
 
-2021-05-06  Gary Dismukes  <dismukes@adacore.com>
+2022-07-04  Justin Squirek  <squirek@adacore.com>
 
-       * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
-       mention of underscore and fix grammar error in doc for -gnatd.
+       * sem_disp.adb (Most_Descendant_Use_Clause): Remove call to
+       deprecated Is_Internal.
+       * sem_util.adb (Innermost_Master_Scope_Depth): Use
+       Find_Enclosing_Scope instead of Nearest_Dynamic_Scope to avoid
+       cases where relevant scopes get skipped leading to an incorrect
+       scope depth calculation.
+
+2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch6.adb (Build_In_Place_Formal): Also compute Returns_By_Ref
+       for the function if the extra formals were not built initially.
+
+2022-07-04  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Resolve_Iterable_Operation): Add guard to
+       prevent crash when the examined function has no formal
+       parameters and Etype is called on Empty entity.
+
+2022-07-04  Julien Bortolussi  <bortolussi@adacore.com>
+
+       * libgnat/a-cfinse.adb, libgnat/a-cfinse.ads: Implementation
+       files of the sequence.
+       * Makefile.rtl, impunit.adb: Take into account the add of the
+       new files
+
+2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst (Pure_Function):
+       Fix ambiguous wording about context dependence.
+       * gnat_rm.texi: Regenerate.
+
+2022-06-02  David Malcolm  <dmalcolm@redhat.com>
+
+       * gcc-interface/misc.cc (gnat_get_sarif_source_language): New.
+       (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): Redefine.
+
+2022-06-02  Pierre-Marie de Rodat  <derodat@adacore.com>
+
+       * gcc-interface/gigi.h: Update copyright notice.
+       * gcc-interface/lang-specs.h: Likewise.
+       * gcc-interface/utils.cc: Likewise.
+
+2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/gigi.h (enum standard_datatypes): Remove values
+       for the SJLJ exception mechanism.
+       (jmpbuf_type): Delete.
+       (jmpbuf_ptr_type): Likewise.
+       (get_jmpbuf_decl): Likewise.
+       (set_jmpbuf_decl): Likewise.
+       (get_excptr_decl): Likewise.
+       (not_handled_by_others_decl): Likewise.
+       (setjmp_decl): Likewise.
+       (update_setjmp_buf_decl): Likewise.
+       (raise_nodefer_decl): Likewise.
+       (set_block_jmpbuf_decl): Likewise.
+       (get_block_jmpbuf_decl): Likewise.
+       * gcc-interface/trans.cc (gigi): Delete dead code.
+       * gcc-interface/utils.cc (gnat_binding_level): Remove JMPBUF_DECL.
+       (gnat_pushlevel): Do not clear it.
+       (set_block_jmpbuf_decl): Delete.
+       (get_block_jmpbuf_decl): Likewise.
+
+2022-06-02  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * gcc-interface/decl.cc (warn_on_field_placement): Add insertion
+       character '.q' to warning string.
+
+2022-06-02  Arnaud Charlet  <charlet@adacore.com>
+
+       * gcc-interface/Makefile.in (gnatlib-shared-default): Add
+       -fno-lto.
+
+2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (gnat_to_gnu_entity): Do not check the
+       scope of anonymous access Itypes.
+       * gcc-interface/trans.cc (Identifier_to_gnu): Do not translate
+       the return type of a subprogram here.
+
+2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch7.adb (Expand_N_Package_Body): Build static dispatch
+       tables only for units that are not compilation units, unless
+       they are generic instances.  Do not push a scope for this.
+       (Expand_N_Package_Declaration): Build static dispatch tables
+       only for units that are both not compilation units and generic
+       instances.
+       * exp_disp.adb (Build_Static_Dispatch_Tables): Remove redundant
+       early return.  Push a scope for package bodies.
+       * sem_ch10.adb: Add with and use clauses for Exp_Disp.
+       (Analyze_Compilation_Unit): Build static dispatch tables here.
+
+2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Clear the Is_Public
+       flag on thunks.
+
+2022-06-02  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch13.adb, exp_ch5.adb, exp_ch9.adb, exp_strm.adb,
+       sem_ch10.adb, sem_ch13.adb, sem_ch5.adb, sem_ch6.adb,
+       sem_ch8.adb, sem_elab.adb, sem_eval.adb, sem_prag.adb,
+       sem_util.adb: Remove checks for the missing list before
+       iterating with First/Next; reindent code and refill comments.
+
+2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo.ads (Has_Controlling_Result): Document new usage.
+       (Is_Thunk): Document secondary stack thunks.
+       (Returns_By_Ref): Adjust.
+       * exp_ch6.adb (Caller_Known_Size): Return true for tagged types.
+       (Expand_N_Extended_Return_Statement): Do not call Set_By_Ref.
+       (Expand_Simple_Function_Return): For a BIP return with an Alloc_Form
+       parameter, mark the node as returning on the secondary stack.
+       Replace call to Is_Limited_Interface with Is_Limited_View.  Deal wit
+       secondary stack thunks.  Do not call Set_By_Ref.  Optimize the case
+       of a call to a function whose type also needs finalization.
+       (Needs_BIP_Task_Actuals): Replace Thunk_Entity with Thunk_Target.
+       (Needs_BIP_Finalization_Master): Cosmetic fixes.
+       (Needs_BIP_Alloc_Form): Check No_Secondary_Stack restriction and
+       return true for tagged types.
+       * exp_ch7.adb (Transient Scope Management): Update description.
+       * exp_disp.adb (Expand_Dispatching_Call): Always set Returns_By_Ref
+       on designated type if the call is dispatching on result.  Tidy up.
+       (Expand_Interface_Thunk): Change type of Thunk_Code from Node_Id to
+       List_Id.  Change type of local variables from Node_Id to Entity_Id.
+       Propagate Aliased_Present flag to create the formals and explicitly
+       set Has_Controlling_Result to False.  Build a secondary stack thunk
+       if necessary in the function case.
+       (Expand_Secondary_Stack_Thunk): New function.
+       (Make_Secondary_DT): Build secondary stack thunks if necessary.
+       (Make_DT): Likewise.
+       (Register_Predefined_Primitive): Likewise.
+       (Register_Primitive): Likewise.
+       * exp_util.ads (Is_Secondary_Stack_Thunk): Declare.
+       (Thunk_Target): Likewise.
+       * exp_util.adb (Is_Secondary_Stack_Thunk): New function.
+       (Thunk_Target): Likewise.
+       * fe.h (Is_Secondary_Stack_Thunk): Declare.
+       (Thunk_Target): Likewise.
+       * gen_il-fields.ads (Opt_Field_Enum): Remove By_Ref.
+       * gen_il-gen-gen_nodes.adb (N_Simple_Return_Statement): Likewise.
+       (N_Extended_Return_Statement): Likewise.
+       * sem_ch6.adb (Analyze_Subprogram_Specification): Skip check for
+       abstract return type in the thunk case.
+       (Create_Extra_Formals): Replace Thunk_Entity with Thunk_Target.
+       * sem_disp.adb (Check_Controlling_Formals): Skip in the thunk case.
+       * sem_util.adb: Add use and with clauses for Exp_Ch6.
+       (Compute_Returns_By_Ref): Do not process procedures and only set
+       the flag for direct return by reference.
+       (Needs_Secondary_Stack): Do not return true for specific tagged
+       types and adjust comments accordingly.
+       * sinfo.ads (By_Ref): Delete.
+       (N_Simple_Return_Statement): Remove By_Ref.
+       (N_Extended_Return_Statement): Likewise.
+       * gcc-interface/ada-tree.h (TYPE_RETURN_UNCONSTRAINED_P): Delete.
+       * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Do not use it.
+       Return by direct reference if the return type needs the secondary
+       stack as well as for secondary stack thunks.
+       * gcc-interface/gigi.h (fntype_same_flags_p): Remove parameter.
+       * gcc-interface/misc.cc (gnat_type_hash_eq): Adjust to above change.
+       * gcc-interface/trans.cc (finalize_nrv): Replace test on
+       TYPE_RETURN_UNCONSTRAINED_P with TYPE_RETURN_BY_DIRECT_REF_P.
+       (Subprogram_Body_to_gnu): Do not call maybe_make_gnu_thunk for
+       secondary stack thunks.
+       (Call_to_gnu): Do not test TYPE_RETURN_UNCONSTRAINED_P.
+       (gnat_to_gnu) <N_Simple_Return_Statement>: In the return by direct
+       reference case, test for the presence of Storage_Pool on the node
+       to build an allocator.
+       (maybe_make_gnu_thunk): Deal with Thunk_Entity and Thunk_Target.
+       * gcc-interface/utils.cc (fntype_same_flags_p): Remove parameter.
+
+2022-06-02  Marc Poulhiès  <poulhies@adacore.com>
+
+       * einfo.ads: Fix reference to Global_Entity_Suppress and
+       Local_Entity_Suppress variable in the comments.
+       * sem.ads: Likewise.
+       * sem_prag.adb: Likewise.
+
+2022-06-02  Claire Dross  <dross@adacore.com>
+
+       * libgnat/s-aridou.adb: Use Always_Return instead of Terminating
+       to annotate termination for GNATprove.
+       * libgnat/s-arit32.adb: Idem.
+       * libgnat/s-spcuop.ads: Idem.
+
+2022-06-02  Julien Bortolussi  <bortolussi@adacore.com>
+
+       * libgnat/a-cofuse.ads, libgnat/a-cofuse.adb,
+       libgnat/a-cofuma.ads, libgnat/a-cofuma.adb: Make Length and
+       Num_Overlaps return Big_Natural.
+       * libgnat/a-cforse.ads, libgnat/a-cforse.adb,
+       libgnat/a-cforma.adb, libgnat/a-cfhase.ads,
+       libgnat/a-cfhase.adb, libgnat/a-cfhama.adb,
+       libgnat/a-cfdlli.adb: Adapt code to handle Big_Integers instead
+       of Count_Type.
+
+2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch3.adb (Init_Secondary_Tags.Initialize_Tag): Initialize the
+       Offset_Func component by means of 'Unrestricted_Access.
+
+2022-06-02  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * errout.adb (Write_JSON_Span): Add subprogram name to emitted
+       JSON.
+
+2022-06-02  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch7.adb (Set_Referencer_Of_Non_Subprograms): New local
+       procedure, used for code refactoring. Also take into account
+       Inline_Always pragma when deciding to make a symbol public for
+       C generation.
+
+2022-06-02  Yannick Moy  <moy@adacore.com>
+
+       * atree.adb (New_Copy): Reset flags related to ghost entities
+       before marking the new node.
+
+2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch6.adb (Freeze_Subprogram.Register_Predefined_DT_Entry): Move
+       procedure to...
+       * exp_disp.ads (Expand_Interface_Thunk): Move declaration to...
+       (Register_Predefined_Primitive): Declare.
+       * exp_disp.adb (Expand_Interface_Thunk): ...here.
+       (Register_Predefined_Primitive): ...here and change into a function
+       returning List_Id.
+
+2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch3.adb (Expand_Freeze_Record_Type): Adjust comment.
+       (Expand_N_Object_Declaration): Do not build static dispatch tables.
+       * exp_disp.adb (Make_And_Insert_Dispatch_Table): New procedure.
+       (Build_Static_Dispatch_Tables): Call it to build the dispatch tables
+       and wrap them in the Actions list of a freeze node.
+
+2022-06-02  Doug Rupp  <rupp@adacore.com>
+
+       * libgnat/system-vxworks7-arm.ads (Support_Atomic_Primitives):
+       Set True.
+       * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-aarch64.ads: Likewise.
+       * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise:
+
+2022-06-02  Javier Miranda  <miranda@adacore.com>
+
+       * libgnat/g-dyntab.ads (Table_Type): Update documentation.
+
+2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * freeze.adb (Check_Expression_Function.Find_Constant): Make test
+       for deferred constants more robust.
+
+2022-06-02  Joffrey Huguet  <huguet@adacore.com>
+
+       * libgnat/i-cstrin.ads (Update): Update precondition.
+
+2022-06-02  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch2.adb (Analyze_Identifier): Add checking for ghost
+       context.
+       * sem_ch5.adb (Analyze_Implicit_Label_Declaration): Treat
+       implicit labels like other entities by setting their ghost
+       status according to context.
+       * ghost.adb (Check_Ghost_Context): Adapt checking.
+
+2022-06-02  Joffrey Huguet  <huguet@adacore.com>
+
+       * libgnat/i-cstrin.ads (Update): Add precondition.
+
+2022-06-02  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch5.adb (Analyze_Label_Entity): Remove body.
+       * sem_ch5.ads (Analyze_Label_Entity): Remove spec.
+
+2022-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_util.adb (Propagate_DIC_Attributes): Add ??? comment.
+       (Propagate_Invariant_Attributes): Likewise.  Propagate the
+       Has_Inheritable_Invariants and Has_Inherited_Invariants to
+       the base type of the target type.
+
+2022-06-02  Doug Rupp  <rupp@adacore.com>
+
+       * libgnat/system-linux-arm.ads (Memory_Size): Compute based on
+       Word_Size.
+
+2022-06-02  Doug Rupp  <rupp@adacore.com>
+
+       * libgnat/system-vxworks7-aarch64-rtp-smp.ads (Word_Size):
+       Compute based on Standard'Word_Size. (Memory_Size): Compute
+       based on Word_Size.
+       * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
+       * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
+       * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
+       * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
+
+2022-06-02  Justin Squirek  <squirek@adacore.com>
+
+       * gnatbind.adb (Gnatbind): Add initialize call for Uintp
+       * gnatls.adb (Gnatls): Likewise.
+       * gprep.adb (Gnatprep): Likewise.
+       * make.adb (Initialize): Likewise.
+
+2022-06-02  Claire Dross  <dross@adacore.com>
+
+       * libgnat/a-cfinve.ads (Element): Change the type of the
+       Position parameter to Extended_Index.
+       * libgnat/a-cfinve.adb (Element): Idem.
+       * libgnat/a-cofove.ads (Element): Idem.
+       * libgnat/a-cofove.adb (Element): Idem.
+
+2022-06-02  Joffrey Huguet  <huguet@adacore.com>
+
+       * libgnat/s-atacco.ads (To_Pointer): Add Global => null.
+       (To_Address): Add SPARK_Mode => Off.
+
+2022-06-02  Joffrey Huguet  <huguet@adacore.com>
+
+       * libgnat/i-cstrin.ads (To_Chars_Ptr): Add SPARK_Mode => Off.
+       (Free): Likewise.
+       (New_Char_Array): Add global contracts and Volatile attribute.
+       (New_String): Likewise.
+       (Value, Strlen, Update): Add global contracts and preconditions.
+       * libgnat/i-cstrin.adb: Add SPARK_Mode => Off to the package
+       body.
+
+2022-06-01  Yannick Moy  <moy@adacore.com>
+
+       * contracts.adb (Check_Type_Or_Object_External_Properties): Check
+       the validity of combinations only when No_Caching is not used.
+       * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Check
+       valid combinations with No_Caching.
+
+2022-06-01  Doug Rupp  <rupp@adacore.com>
+
+       * libgnat/system-vxworks7-aarch64.ads (Word_Size): Compute
+       based on Standard'Word_Size. (Memory_Size): Compute based
+       on Word_Size.
+       * libgnat/system-vxworks7-arm.ads: Likewise.
+       * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
+       * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
+       * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
+       * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
+       * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
+
+2022-06-01  Doug Rupp  <rupp@adacore.com>
+
+       * libgnat/system-qnx-arm.ads (Memory_Size): Compute based on
+       Word_Size.
+
+2022-06-01  Piotr Trojanek  <trojanek@adacore.com>
+
+       * par-util.adb (Ignore): Add missing space to message string.
+
+2022-06-01  Yannick Moy  <moy@adacore.com>
+
+       * sem_prag.ads (Assertion_Expression_Pragmas): Fix value for
+       pragma Subprogram_Variant.
+
+2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch6.adb (Caller_Known_Size): Invoke Needs_Secondary_Stack in
+       lieu of Returns_On_Secondary_Stack.
+       (Expand_Call_Helper): Likewise.
+       (Expand_Simple_Function_Return): Likewise.
+       (Needs_BIP_Alloc_Form): Likewise.
+       * exp_ch7.adb (Wrap_Transient_Declaration): Likewise.
+       * sem_res.adb (Resolve_Call): Likewise.
+       (Resolve_Entry_Call): Likewise.
+       * sem_util.ads (Returns_On_Secondary_Stack): Rename into...
+       (Needs_Secondary_Stack): ...this.
+       * sem_util.adb (Returns_On_Secondary_Stack): Rename into...
+       (Needs_Secondary_Stack): ...this.
+       * fe.h (Returns_On_Secondary_Stack): Delete.
+       (Needs_Secondary_Stack): New function.
+       * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Replace call
+       to Returns_On_Secondary_Stack with Needs_Secondary_Stack.
+
+2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch6.adb (Analyze_Subprogram_Body_Helper): For the case where
+       there is no previous declaration, freeze the body entity only after
+       it has been processed as a new overloaded name.
+       Use Was_Expression_Function to recognize expression functions.
+       * sem_disp.adb (Check_Dispatching_Operation): Do not require a body
+       which is the last primitive to be frozen here.
+
+2022-06-01  Julien Bortolussi  <bortolussi@adacore.com>
+
+       * libgnat/a-cfdlli.adb ("="): Make the function properly loop
+       over the right list.
+
+2022-06-01  Marc Poulhiès  <poulhies@adacore.com>
+
+       * checks.adb (Apply_Predicate_Check): Refine condition for
+       applying optimization.
+       * sem_ch3.adb (Analyze_Component_Declaration): Adjust calls to
+       Should_Build_Subtype.
+       (Analyze_Object_Declaration): Likewise.
+       (Should_Build_Subtype): Rename/move to ...
+       * sem_util.ads (Build_Default_Subtype_OK): ... this.
+       * sem_util.adb (Build_Default_Subtype_OK): Moved from
+       sem_ch3.adb.
+
+2022-06-01  Doug Rupp  <rupp@adacore.com>
+
+       * init.c (__gnat_adjust_context_for_raise) [QNX][__thumb2__]: Bump
+       the pc an extra byte.
+
+2022-06-01  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Document new behavior.
+       * errout.adb (Write_JSON_Location): Output absolute paths when
+       needed.
+       * switch-c.adb (Scan_Front_End_Switches): Update -gnatef
+       comment.
+       * usage.adb (Usage): Update description of -gnatef.
+       * gnat_ugn.texi: Regenerate.
+
+2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * contracts.adb (Build_Postconditions_Procedure): Set Is_Inlined
+       unconditionnally on the procedure entity.
+
+2022-06-01  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.adb (Constrain_Access): Propagate null-exclusion flag
+       from parent type.
+
+2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch5.adb (Analyze_Loop_Statement): Add a comment about
+       a finalization issue.
+
+2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch6.adb (Caller_Known_Size): Call Returns_On_Secondary_Stack
+       instead of Requires_Transient_Scope and tidy up.
+       (Needs_BIP_Alloc_Form): Likewise.
+       * exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Also return
+       true if the build-in-place function call has no BIPalloc parameter.
+       (Is_Finalizable_Transient): Remove redundant test.
+
+2022-06-01  Alexandre Oliva  <oliva@adacore.com>
+
+       * doc/gnat_rm/security_hardening_features.rst: Note that hardening
+       features are experimental.
+       * gnat_rm.texi: Regenerate.
+
+2022-06-01  Steve Baird  <baird@adacore.com>
+
+       * exp_ch3.adb (Make_Controlling_Function_Wrappers): Set the
+       Corresponding_Spec field of a wrapper subprogram body before
+       analyzing the subprogram body; the field will be set (again)
+       during analysis, but we need it to be set earlier.
+       * exp_ch13.adb (Expand_N_Freeze_Entity): Add wrapper subprogram
+       bodies to the list of declarations for which we do not want to
+       suppress checks.
+
+2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_util.adb (Indirect_Temp_Needed): Adjust reference in comment.
+
+2022-06-01  Doug Rupp  <rupp@adacore.com>
+
+       * Makefile.rtl (GNATLIB_SHARED): Revert disablement for arm-qnx.
+
+2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_util.adb
+       (Returns_On_Secondary_Stack.Caller_Known_Size_Record): Directly
+       check the dependence on discriminants for the variant part, if
+       any, instead of calling the Is_Definite_Subtype predicate.
+
+2022-06-01  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_warn.adb (Warn_On_Unreferenced_Entity): Fix warning tag.
+
+2022-06-01  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_warn.adb (Check_References): Adjust conditions under which
+       warning messages should be emitted and their tags as well.
+
+2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_disp.ads (Expand_Interface_Thunk): Change type of Prim.
+       * exp_disp.adb (Expand_Interface_Thunk): Declare Is_Predef_Op
+       earlier, do not initialize Iface_Formal, use No idiom and tweaks
+       comments.
+       (Register_Primitive): Declare L earlier and tweak comments.
+       * sem_disp.adb (Check_Dispatching_Operation): Move tests out of
+       loop.
+
+2022-06-01  Steve Baird  <baird@adacore.com>
+
+       * exp_ch3.ads: Replace visible Build_Discr_Checking_Funcs (which
+       did not need to be visible - it was not referenced outside this
+       package) with Build_Or_Copy_Discr_Checking_Funcs.
+       * exp_ch3.adb: Refactor existing code into 3 procedures -
+       Build_Discr_Checking_Funcs, Copy_Discr_Checking_Funcs, and
+       Build_Or_Copy_Discr_Checking_Funcs. This refactoring is intended
+       to be semantics-preserving.
+       * exp_ch4.adb (Expand_N_Selected_Component): Detect case where a
+       call should be generated to the Discriminant_Checking_Func for
+       the component in question, but that subprogram does not yet
+       exist.
+       * sem_ch13.adb (Freeze_Entity_Checks): Immediately before
+       calling Build_Predicate_Function, add a call to
+       Exp_Ch3.Build_Or_Copy_Discr_Checking_Funcs in order to ensure
+       that Discriminant_Checking_Func attributes are already set when
+       Build_Predicate_Function is called.
+       * sem_ch6.adb (Analyze_Expression_Function): If the expression
+       of a static expression function has been transformed into an
+       N_Raise_xxx_Error node, then we need to copy the original
+       expression in order to check the requirement that the expression
+       must be a potentially static expression. We also want to set
+       aside a copy the untransformed expression for later use in
+       checking calls to the expression function via
+       Inline_Static_Function_Call.  So introduce a new function,
+       Make_Expr_Copy, for use in these situations.
+       * sem_res.adb (Preanalyze_And_Resolve): When analyzing certain
+       expressions (e.g., a default parameter expression in a
+       subprogram declaration) we want to suppress checks. However, we
+       do not want to suppress checks for the expression of an
+       expression function.
+
+2022-06-01  Bob Duff  <duff@adacore.com>
+
+       * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): For each
+       subprogram found, assert that the variable is Empty, so we can
+       detect bugs where we find two or more things with the same name.
+       Without this patch, that bug would happen when we add the new
+       Next procedure.  For Step, make sure we pick the right one, by
+       checking name and number of parameters.  For Get_Element_Access,
+       check that we're picking a function.  That's not really
+       necessary, because there is no procedure with that name, but it
+       seems cleaner this way.
+       * rtsfind.ads: Minor comment improvement. It seems kind of odd
+       to say "under no circumstances", and then immediately contradict
+       that with "The one exception is...".
+
+2022-06-01  Doug Rupp  <rupp@adacore.com>
+
+       * init.c (QNX): __gnat_adjust_context_for_raise: New
+       implementation for arm-qnx.
+
+2022-06-01  Julien Bortolussi  <bortolussi@adacore.com>
+
+       * libgnat/a-cofuba.ads, libgnat/a-cofuba.adb: Add reference
+       counting.
+
+2022-06-01  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch8.adb (Use_One_Package): Possibly warn.
+       * sem_util.adb (Enter_Name): Factor out warning on hidden entity.
+       (Warn_On_Hiding_Entity): Extract warning logic from Enter_Name and
+       generalize it to be applied also on use_clause.
+       * sem_util.ads (Warn_On_Hiding_Entity): Add new procedure.
+
+2022-06-01  Yannick Moy  <moy@adacore.com>
+
+       * par-ch3.adb (P_Known_Discriminant_Part_Opt): Reword error
+       message to benefit from existing codefix.
+       (P_Record_Definition): Detect out-of-order keywords in record
+       definition and issue appropriate messages. Other cases are
+       already caught at appropriate places.
+
+2022-06-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch6.adb (Freeze_Subprogram.Register_Predefined_DT_Entry): Put
+       the actions into the Actions field of the freeze node instead of
+       inserting them after it.
+
+2022-06-01  Marc Poulhiès  <poulhies@adacore.com>
+
+       * sinfo.ads: Add inline documention for Is_Parenthesis_Aggregate
+       and Is_Enum_Array_Aggregate.
+
+2022-06-01  Bob Duff  <duff@adacore.com>
+
+       * einfo-utils.adb (Set_Convention): Call Set_Convention
+       recursively, so that Set_Can_Use_Internal_Rep is called (if
+       appropriate) on the anonymous access type of the object, and its
+       designated subprogram type.
+       * sem_ch3.adb (Access_Definition): Remove redundant call to
+       Set_Can_Use_Internal_Rep.
+
+2022-06-01  Bob Duff  <duff@adacore.com>
+
+       * exp_ch4.adb (Expand_N_In): Do not warn in the above-mentioned
+       cases.
+       * fe.h (Assume_No_Invalid_Values): Remove from fe.h, because
+       this is not used in gigi.
+       * opt.ads (Assume_No_Invalid_Values): Improve the comment. We
+       don't need to "clearly prove"; we can just "prove". Remove the
+       comment about fe.h, which is no longer true.
+
+2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * erroutc.adb (Get_Warning_Option): Don't consider `?` as a
+       valid option switch.
+
+2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * erroutc.ads (Get_Warning_Option): New function returning the
+       option responsible for a warning if it exists.
+       * erroutc.adb (Get_Warning_Option): Likewise.
+       (Get_Warning_Tag): Rely on Get_Warning_Option when possible.
+       * errout.adb (Output_JSON_Message): Emit option field.
+
+2022-05-30  Julien Bortolussi  <bortolussi@adacore.com>
+
+       * libgnat/a-cfdlli.ads (Insert): Remove the duplication.
+
+2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch6.adb (Check_Subprogram_Variant): Ignore structural
+       variants.
+
+2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
+
+       * osint.adb (Locate_File): Change variable to constant and
+       initialize it by concatenation of directory, file name and NUL.
+
+2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_advice.rst (Packed Types): Remove
+       duplicated and wrongly placed paragraph.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * inline.adb (Check_Package_Body_For_Inlining): Add insertion
+       character.
+
+2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * freeze.adb (Warn_Overlay): Add 'o' insertion character.
+       * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Likewise.
+       * sem_util.adb (Note_Possible_Modifications): Likewise.
+
+2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_warn.adb (Warn_On_Useless_Assignment): Fix insertion
+       character.
+
+2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_disp.adb (Warn_On_Late_Primitive_After_Private_Extension):
+       Fix insertion character.
+
+2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * sem_elab.adb (Process_Conditional_ABE_Access_Taken): Add '.f'
+       insertion characters.
+
+2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
+
+       * lib-xref.ads (Deferred_Reference_Entry, Defer_Reference,
+       Process_Deferred_References, Has_Deferred_Reference): Remove
+       client API.
+       * lib-xref.adb (Deferred_References, Defer_Reference,
+       Has_Deferred_Reference, Process_Deferred_References): Remove
+       implementation.
+       * frontend.adb, sem_ch11.adb, sem_ch5.adb, sem_res.adb,
+       sem_util.adb, sem_warn.adb: Remove uses of Deferred_References.
+
+2022-05-30  Bob Duff  <duff@adacore.com>
+
+       * exp_ch7.adb (Wrap_HSS_In_Block): Do not create a new block in
+       the case of function bodies. We include all subprogram bodies,
+       because it's harmless for procedures. We cannot easily avoid
+       creating this block in ALL cases, because some transformations
+       of (e.g.) task bodies end up moving some code such that the
+       wrong exception handlers apply to that code.
+       (Build_Finalizer_Call): Remove code for creating a new block.
+       This was unreachable code, given that Wrap_HSS_In_Block has
+       already done that, but with the above change to
+       Wrap_HSS_In_Block, this code becomes reachable, and triggers
+       essentially the same bug.
+       * exp_ch7.ads: Adjust comment.
+
+2022-05-30  Justin Squirek  <squirek@adacore.com>
+
+       * par-ch6.adb (P_Formal_Part): Set Aspect_Specifications on all
+       formals instead of just the last in a formal id list.
+       * sem_ch6.adb (Analyze_Null_Procedure): Mark expanded null
+       generic procedures as trivial in order to avoid spurious
+       unreferenced warnings.
+
+2022-05-30  Romain Beguet  <beguet@adacore.com>
+
+       * libgnat/s-dwalin.adb: Add a subtype declaration to fix the
+       ambiguity.
+
+2022-05-30  Steve Baird  <baird@adacore.com>
+
+       * sem_ch13.adb (Is_Predicate_Static): Do not generate warnings
+       about subexpressions of enclosing expressions. Generate warnings
+       for predicates that are known to be always true or always false,
+       except in the case where the predicate is expressed as a Boolean
+       literal. Deal with non-predicate-static expressions that have
+       been transformed into predicate-static expressions.  Add missing
+       Is_Type_Ref call to N_Membership_Test case.
+
+2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_aggr.adb (Expand_Record_Aggregate.Build_Back_End_Aggregate):
+       Skip the discriminants at the start of the component list before
+       looking for the components inherited from the parent in the case
+       of a tagged extension.
+
+2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_disp.adb (Make_DT): Remove remaining freezing code.
+
+2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_attr.adb (Resolve_Attribute) <Attribute_Access>: Don't analyze
+       the body of an expression function in the case of a dispatch table.
+
+2022-05-30  Arnaud Charlet  <charlet@adacore.com>
+
+       * gnat1drv.adb, opt.ads, sem_ch7.adb: Introduce CCG_Mode.
+
+2022-05-30  Yannick Moy  <moy@adacore.com>
+
+       * Makefile.rtl: Add new units.
+       * libgnat/s-aridou.adb (Scaled_Divide): Add ghost code for provers.
+       * libgnat/s-spcuop.adb: New unit for ghost cut operations.
+       * libgnat/s-spcuop.ads: New unit for ghost cut operations.
+       * libgnat/s-spark.ads: New unit.
+
+2022-05-30  Alexandre Oliva  <oliva@adacore.com>
+
+       * doc/gnat_rm/security_hardening_features.rst: Mention
+       availability in other languages when applicable.
+       (Stack Scrubbing): Associate the attribute with types, expand
+       some comments, fix the example involving access to variables.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-30  Piotr Trojanek  <trojanek@adacore.com>
+
+       * libgnat/a-cofuse.ads (Empty_Set): Fix typo in comment.
+
+2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch6.adb (New_Overloaded_Entity): Deal specifically with the
+       overriding of the "=" operator for tagged types.
+
+2022-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch3.adb (Expand_N_Object_Declaration): Adjust call to Make_DT.
+       * exp_disp.ads (Building_Static_DT): Remove pragma Inline.
+       (Building_Static_Secondary_DT): Likewise.
+       (Convert_Tag_To_Interface): Likewise.
+       (Make_DT): Remove second parameter.
+       * exp_disp.adb (Make_DT): Likewise.
+       (Check_Premature_Freezing): Delete.
+       Pass Do_Freeze_Profile as False in call to Freeze_Entity.
+       * freeze.ads (Freezing_Library_Level_Tagged_Type): Delete.
+       * freeze.adb (Freeze_Profile): Remove obsolete code.
+       (Freeze_Entity): Tweak comment.
+
+2022-05-30  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-arit32.adb (Scaled_Divide32): Move assertion up.
+
+2022-05-30  Yannick Moy  <moy@adacore.com>
+
+       PR ada/105303
+       * libgnat/s-gearop.adb: Add pragma Assertion_Policy in generic
+       bodies making use of additional assertions or ghost code.
+       * libgnat/s-gearop.ads: Remove confusing Assertion_Policy.
+
+2022-05-30  Steve Baird  <baird@adacore.com>
+
+       * exp_ch11.adb (Expand_N_Raise_Expression): Remove
+       Convert_To_Return_False test.
+       * gen_il-fields.ads: Remove Convert_To_Return_False field.
+       * gen_il-gen-gen_nodes.adb: Remove use of
+       Convert_To_Return_False field.
+       * sinfo.ads: Remove comment describing Convert_To_Return_False
+       flag.
+
+2022-05-30  Julien Bortolussi  <bortolussi@adacore.com>
+
+       * libgnat/a-cofuma.ads, libgnat/a-cofuma.adb,
+       libgnat/a-cofuse.ads, libgnat/a-cofuse.adb,
+       libgnat/a-cofuve.ads, libgnat/a-cofuve.adb: Add empty
+       constructors.
+
+2022-05-30  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * bindgen.adb (Gen_CUDA_Init): Remove code generating CUDA
+       definitions.
+       (Gen_CUDA_Defs): New function, generating definitions
+       initialized by Gen_CUDA_Init.
+       (Gen_Output_File_Ada): Call Gen_CUDA_Defs instead of
+       Gen_CUDA_Init.
+       (Gen_Adainit): Call Gen_CUDA_Init.
+
+2022-05-28  Alexandre Oliva  <oliva@adacore.com>
+
+       * gcc-interface/Makefile.in (OSCONS_CC): Rename to...
+       (GCC_FOR_ADA_RTS): ... this.  Adjust users.
+       (gnatlib): Pass it down as CC.
+       (gnatlib-shared-default): Likewise.
+       (gnatlib-shared-win32, gnatlib-shared-darwin): Likewise.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Constant>: Deal with
+       a constant related to a return in a function specially.
+       * gcc-interface/trans.cc (Call_to_gnu): Use return slot optimization
+       if the target is a return object.
+       (gnat_to_gnu) <N_Object_Declaration>: Deal with a constant related
+       to a return in a function specially.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils.cc (gnat_pushdecl): Also set TREE_NO_WARNING
+       on the decl if Comes_From_Source is false for the associated node.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.cc (gnat_gimplify_expr): Tidy up.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Function>: Also call
+       process_attributes for built-in functions.
+       (prepend_one_attribute_pragma): Deal with "simd" attribute.
+       * gcc-interface/utils.cc (handle_simd_attribute): New function.
+       (gnat_internal_attribute_table): Add entry for "simd" attribute.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (components_to_record): Use NULL recursively
+       as P_GNU_REP_LIST for the innermost variant level in the unchecked
+       union case with a fixed part.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.cc (gnat_to_gnu): Do not set Current_Error_Node
+       to a node without location.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>: And
+       skip the elaboration of the designated subtype when that of its base
+       type has been delayed.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Record_Subtype>: If
+       it is a special subtype designated by an access subtype, then defer
+       the completion of incomplete types.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/ada-tree.h, gcc-interface/ada.h,
+       gcc-interface/gadaint.h, gcc-interface/targtyps.cc: Adjust
+       copyright line.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils.cc (unchecked_convert): Do not fold a string
+       constant if the target type is pointer to character.
+
+2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Analyze_Pragma): Remove redundant call to
+       Set_Error_Posted.
+
+2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch8.adb (Find_Expanded_Name): Emit a main error message
+       before adding a continuation with the call to
+       Error_Missing_With_Of_Known_Unit.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_util.ads (Requires_Transient_Scope): Add pragma Inline.
+
+2022-05-19  Steve Baird  <baird@adacore.com>
+
+       * sem_ch13.adb (Build_Predicate_Functions): If a semantic error
+       has been detected then ignore Predicate_Failure aspect
+       specifications in the same way as is done for CodePeer and
+       SPARK. This avoids an internal compiler error if
+       Ancestor_Predicate_Function_Called is True but Result_Expr is
+       not an N_And_Then node (and is therefore unsuitable as an
+       argument in a call to Left_Opnd).
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch7.adb (Wrap_Transient_Declaration): Propagate Uses_Sec_Stack
+       to enclosing function if it does not return on the secondary stack.
+       * exp_ch6.adb (Expand_Call_Helper): Call Establish_Transient_Scope
+       with Manage_Sec_Stack set to True only when necessary.
+       * sem_res.adb (Resolve_Call): Likewise.
+       (Resolve_Entry_Call): Likewise.
+
+2022-05-19  Daniel Mercier  <mercier@adacore.com>
+
+       * sem_ch13.adb (Build_Predicate_Function): Ignore predicate
+       failure in CodePeer mode.
+
+2022-05-19  Arnaud Charlet  <charlet@adacore.com>
+
+       * raise-gcc.c: Fix compilation with -DSTANDALONE under windows.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch4.adb (Narrow_Large_Operation): Preserve and reuse Etype.
+
+2022-05-19  Javier Miranda  <miranda@adacore.com>
+
+       * exp_attr.adb (Add_Implicit_Interface_Type_Conversion): New
+       subprogram which factorizes code.
+       (Expand_N_Attribute_Reference): Call the new subprogram to add
+       the missing implicit interface type conversion.
+
+2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch13.adb (Build_Predicate_Function): Ignore predicate
+       failure in GNATprove mode.
+
+2022-05-19  Steve Baird  <baird@adacore.com>
+
+       * einfo-utils.ads, einfo-utils.adb: Delete Predicate_Function_M
+       function and Set_Predicate_Function_M procedure.
+       * einfo.ads: Delete comments for Is_Predicate_Function_M and
+       Predicate_Function_M functions. Add comment for new
+       Predicate_Expression function. Update comment describing
+       predicate functions.
+       * exp_util.ads, exp_util.adb (Make_Predicate_Call): Replace Mem
+       formal parameter with Static_Mem and Dynamic_Mem formals.
+       (Make_Predicate_Check): Delete Add_Failure_Expression and call
+       to it.
+       * exp_ch4.adb (Expand_N_In.Predicate_Check): Update
+       Make_Predicate_Call call to match profile change.
+       * gen_il-fields.ads: Delete Is_Predicate_Function_M field, add
+       Predicate_Expression field.
+       * gen_il-gen-gen_entities.adb: Delete Is_Predicate_Function_M
+       use, add Predicate_Expression use.
+       * sem_ch13.adb (Build_Predicate_Functions): Rename as singular,
+       not plural; we no longer build a Predicate_M function. Delete
+       Predicate_M references. Add new Boolean parameter for predicate
+       functions when needed. Restructure body of generated predicate
+       functions to implement required Predicate_Failure behavior and
+       to set new Predicate_Expression attribute. Remove special
+       treatment of raise expressions within predicate expressions.
+       * sem_util.ads (Predicate_Failure_Expression,
+       Predicate_Function_Needs_Membership_Parameter): New functions.
+       * sem_util.adb (Is_Current_Instance): Fix bugs which caused
+       wrong result.
+       (Is_Current_Instance_Reference_In_Type_Aspect): Delete
+       Is_Predicate_Function_M reference.
+       (Predicate_Failure_Expression): New function.
+       (Propagate_Predicate_Attributes): Delete Is_Predicate_Function_M
+       references.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch6.adb (Expand_Call_Helper): Adjust comment.
+       (Expand_Simple_Function_Return): For the case of a type which needs
+       finalization and is returned on the primary stack, do not create a
+       copy if the expression originates from a function call.
+       * exp_ch7.adb (Transient Scope Management): Adjust comment.
+       * exp_util.ads (Is_Related_To_Func_Return): Add WARNING line.
+       * fe.h (Is_Related_To_Func_Return): Declare.
+
+2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch9.adb (Build_Find_Body_Index): Remove empty Elsif_Parts
+       from the constructed IF statement.
+
+2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch9.adb (Build_Find_Body_Index): Remove IF statement whose
+       condition was true-by-construction; remove excessive assertion
+       (since the call to Elsif_Parts will check that Nod is present
+       and it is an if-statement).
+
+2022-05-19  Arnaud Charlet  <charlet@adacore.com>
+
+       * gnat1drv.adb, gnatcmd.adb: Remove references to gnatfind/xref.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst,
+       doc/gnat_ugn/the_gnat_compilation_model.rst: Ditto.
+       * gnat_ugn.texi: Regenerate.
+       * gnatfind.adb, gnatxref.adb, xr_tabls.adb, xr_tabls.ads,
+       xref_lib.adb, xref_lib.ads: Removed, no longer used.
+
+2022-05-19  Claire Dross  <dross@adacore.com>
+
+       * libgnat/a-strfix.adb: Add assertions.
+       * libgnat/a-strsup.adb: Idem.
+
+2022-05-19  Ed Schonberg  <schonberg@adacore.com>
+
+       * erroutc.ads: Fix a single-character typo in a comment.
+       * exp_aggr.adb: Fix a single-character typo in a comment.
+       Replace several pairs of calls to Low_Bound and
+       High_Bound (which do not handle an identifier that denotes a
+       scalar subtype) with corresponding calls to Get_Index_Bounds
+       (which does handle that case).
+       * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Set the
+       Component_Associations attribute of a null array aggregate to
+       New_List.
+       * sem_aggr.ads: New visible function
+       Is_Null_Array_Aggregate_High_Bound.
+       * sem_aggr.adb (Is_Null_Array_Aggregate_High_Bound,
+       Is_Null_Aggregate, Resolve_Null_Array_Aggregate): New functions.
+       (Resolve_Aggregate): Recognize null array aggregates (using
+       Is_Null_Aggregate) and, when one is recognized, resolve
+       it (using Resolve_Null_Array_Aggregate).  Avoid calling
+       Array_Aggr_Subtype for a null array aggregate; the needed
+       subtype is built in Resolve_Null_Array_Aggregate. Do not
+       incorrectly flag a null aggregate (after it is transformed by
+       expansion) as being both positional and named.
+       * sem_attr.adb (Eval_Attribute): Special treatment for null
+       array aggregate high bounds to avoid incorrectly flagging
+       something like Integer'Pred (Integer'First) as an illegal static
+       expression.
+       * sem_eval.adb (Out_Of_Range): Special treatment for null array
+       aggregate high bounds to avoid incorrectly flagging something
+       like Integer'Pred (Integer'First) as an illegal static
+       expression.
+
+2022-05-19  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-aridou.adb (Lemma_Abs_Range,
+       Lemma_Double_Shift_Left, Lemma_Shift_Left): New lemmas.
+       (Double_Divide): Add ghost code.
+       (Lemma_Concat_Definition, Lemma_Double_Shift_Left,
+       Lemma_Shift_Left, Lemma_Shift_Right): Define or complete lemmas.
+       (Scaled_Divide): Add ghost code.
+
+2022-05-19  Bob Duff  <duff@adacore.com>
+
+       * exp_pakd.adb (Expand_Packed_Eq): Replace the check for *same*
+       modular type, with a check for any modular type, and assert that
+       the two types have the same modulus and so on.
+       * exp_pakd.ads: Minor comment improvements.
+
+2022-05-19  Bob Duff  <duff@adacore.com>
+
+       * style.adb (Check_Identifier): Deal with the case where a
+       record component definition has been transformed; we want to
+       warn if the original came from source.
+       * libgnat/s-objrea.ads, libgnat/s-objrea.adb: Fix casing of MF
+       to be consistent.
+       * uname.adb: Fix casing of Chars to be consistent.
+       * sem_util.ads: Minor comment fix.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-retsta.
+       * debug.adb (d_r): Document usage.
+       * exp_ch4.adb (Expand_N_Allocato): Deal with the return stack pool.
+       * exp_ch6.adb (Expand_Simple_Function_Return): Replace calls to
+       Requires_Transient_Scope with Returns_On_Secondary_Stack.  Deal
+       with types that need finalization returned on the primary stack,
+       use CW_Or_Needs_Finalization for those returned on the secondary.
+       * exp_util.adb (Build_Allocate_Deallocate_Proc): Return early
+       for the return stack pool.
+       (Remove_Side_Effects): Call CW_Or_Needs_Finalization.
+       * fe.h (Requires_Transient_Scope): Delete.
+       (Returns_On_Secondary_Stack): Declare.
+       * gnat1drv.adb (Adjust_Global_Switches): Set Back_End_Return_Slot
+       to False when generating C code or if -gnatd_r is specified.
+       * opt.ads (Back_End_Return_Slot): New boolean variable.
+       * rtsfind.ads (RTU_Id): Add System_Return_Stack.
+       (RE_Id): Add RE_RS_Allocate and RE_RS_Pool.
+       (RE_Unit_Table): Add entries for RE_RS_Allocate and RE_RS_Pool.
+       * sem_util.ads (CW_Or_Has_Controlled_Part): Delete.
+       (CW_Or_Needs_Finalization): Declare.
+       (Requires_Transient_Scope): Adjust description.
+       (Returns_On_Secondary_Stack): Declare.
+       * sem_util.adb (Compute_Returns_By_Ref): Set Returns_By_Ref on types
+       which need finalization if they are returned on the secondary stack.
+       (CW_Or_Has_Controlled_Part): Rename to...
+       (CW_Or_Needs_Finalization): ...this.
+       (Requires_Transient_Scope): Move bulk of implementation to...
+       (Returns_On_Secondary_Stack): ...here.  Return true for types which
+       need finalization only if the back-end return slot is not supported.
+       * libgnat/s-retsta.ads: New file.
+       * gcc-interface/ada-builtin-types.def (BT_FN_PTR_SSIZE): Define.
+       * gcc-interface/ada-builtins.def (return_slot): Likewise.
+       * gcc-interface/ada-tree.h (BUILT_IN_RETURN_SLOT): Likewise.
+       * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Replace call to
+       Requires_Transient_Scope with Returns_On_Secondary_Stack.
+       * gcc-interface/trans.cc (gnat_to_gnu) <N_Simple_Return_Statement>:
+       In the return by invisible reference, skip the copy if the source
+       is the same as the destination.
+       * gcc-interface/utils2.cc (build_call_alloc_dealloc_proc): Deal with
+       the return stack pool.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.cc: Fix formatting issues in comments.
+       (Subprogram_Body_to_gnu): Tidy up.
+       (Exception_Handler_to_gnu_gcc): Rename into...
+       (Exception_Handler_to_gnu): ...this.
+       (gnat_to_gnu) <N_Exception_Handler>: Adjust to above renaming.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Rename a couple
+       of local variables and use Is_Generic_Subprogram predicate.
+       (process_decls): Likewise.
+
+2022-05-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Do not deal with
+       inlining heuristics for expression functions here but...
+       * gcc-interface/decl.cc (inline_status_for_subprog): ...here instead
+       and do not override them at -Os.
+
+2022-05-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * gcc-interface/decl.cc (gnat_to_gnu_entity): Remove dead code
+       which expected Scope to return E_Subprogram_Body entity.
+
+2022-05-18  Claire Dross  <dross@adacore.com>
+
+       * libgnat/s-imageu.adb (Set_Image_Unsigned): Change assertion.
+
+2022-05-18  Doug Rupp  <rupp@adacore.com>
+
+       * sigtramp-qnx.c: Change struct sigcontext * to mcontext_t *.
+
+2022-05-18  Doug Rupp  <rupp@adacore.com>
+
+       * sigtramp-arm-qnx.c: Rewrite.
+
+2022-05-18  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-aridou.adb (Big3): Change return type.
+       (Lemma_Mult_Non_Negative, Lemma_Mult_Non_Positive): Reorder
+       alphabetically.
+       (Lemma_Concat_Definition, Lemma_Double_Big_2xxsingle): New
+       lemmas.
+       (Double_Divide, Scaled_Divide): Add assertions.
+
+2022-05-18  Claire Dross  <dross@adacore.com>
+
+       * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Add assertions.
+
+2022-05-18  Kévin Le Gouguec  <legouguec@adacore.com>
+
+       * libgnat/s-dwalin.adb (Read_Aranges_Header): Initialize output
+       parameter in case we return early.
+
+2022-05-18  Bob Duff  <duff@adacore.com>
+
+       * libgnat/a-crbtgo.ads, libgnat/a-rbtgbo.ads,
+       libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
+       libgnat/a-cbhase.adb, libgnat/a-cdlili.adb,
+       libgnat/a-cfdlli.adb, libgnat/a-cfhama.adb,
+       libgnat/a-cfhase.adb, libgnat/a-cidlli.adb,
+       libgnat/a-cihama.adb, libgnat/a-cihase.adb,
+       libgnat/a-cohama.adb, libgnat/a-cohase.adb,
+       libgnat/a-crbtgo.adb, libgnat/a-crdlli.adb, libgnat/a-rbtgbo.adb
+       (Vet): Make the Vet functions do nothing when
+       Container_Checks'Enabled is False, and inline them, so the calls
+       disappear when optimizing.
+
+2022-05-18  Doug Rupp  <rupp@adacore.com>
+
+       * Makefile.rtl (arm-qnx): Use default (non-fma) target pair.
+
+2022-05-18  Kévin Le Gouguec  <legouguec@adacore.com>
+
+       * libgnat/s-dwalin.adb (Aranges_Lookup, Enable_Cache): Adapt to
+       changes in the signature of Read_Aranges_*.
+       (Debug_Info_Lookup): Do not control address size read from
+       DWARF.
+       (Read_Aranges_Header): Do not control address size read from
+       DWARF; return this size.
+       (Read_Aranges_Entry): Use the size returned by
+       Read_Aranges_Header.
+
+2022-05-18  Gary Dismukes  <dismukes@adacore.com>
+
+       * errout.ads (Error_Msg_GNAT_Extension): Add formal Loc and
+       revise comment.
+       * errout.adb (Error_Msg_GNAT_Extension): Condition message on
+       the flag Ada_Version_Pragma, and add suggestion to use of pragma
+       Extensions_Allowed in messages.
+       * par-ch3.adb, par-ch5.adb, par-ch6.adb, par-ch11.adb,
+       par-ch12.adb: Add actual Token_Ptr on calls to
+       Error_Msg_GNAT_Extension.
+       * par-ch4.adb: Change Error_Msg to Error_Msg_GNAT_Extension for
+       error calls related to use of extension features.
+       * sem_ch13.adb: Likewise.
+
+2022-05-18  Johannes Kliemann  <kliemann@adacore.com>
+
+       * libgnarl/s-osinte__qnx.adb (To_Target_Priority): Perform
+       arithmetic in int.
+
+2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Use Needs_BIP_Alloc_Form.
+
+2022-05-18  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch6.adb (Find_Corresponding_Spec): Avoid calling
+       Is_Null_Extension with a class-wide type entity.
+       (Overrides_Visible_Function): Handle alias entities.
+       * sem_res.adb (Has_Applicable_User_Defined_Literal): Conversion
+       not needed if the result type of the call is class-wide or if
+       the result type matches the context type.
+       * sem_util.ads (Is_Null_Extension): Adding documentation.
+       (Is_Null_Extension_Of): Adding documentation.
+       * sem_util.adb (Is_Null_Extension): Adding assertion.
+       (Is_Null_Extension_Of): Adding assertions.
+
+2022-05-18  Javier Miranda  <miranda@adacore.com>
+
+       * snames.ads-tmpl (Name_Index): New attribute name.
+       (Attribute_Id): Adding Attribute_Index as regular attribute.
+       * sem_attr.adb (Attribute_22): Adding Attribute_Index as Ada
+       2022 attribute.
+       (Analyze_Index_Attribute): Check that 'Index appears in a
+       pre-/postcondition aspect or pragma associated with an entry
+       family.
+       (Analyze_Attribute): Adding semantic analysis for 'Index.
+       (Eval_Attribute): Register 'Index as can never be folded.
+       (Resolve_Attribute): Resolve attribute 'Index.
+       * sem_ch9.adb (Check_Wrong_Attribute_In_Postconditions): New
+       subprogram.
+       (Analyze_Requeue): Check that the requeue target shall not have
+       an applicable specific or class-wide postcondition which
+       includes an Index attribute reference.
+       * exp_attr.adb (Expand_N_Attribute_Reference): Transform
+       attribute Index into a renaming of the second formal of the
+       wrapper built for an entry family that has contract cases.
+       * einfo.ads (Is_Entry_Wrapper): Complete documentation.
+
+2022-05-18  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-imagei.adb (Set_Digits): Add assertion.
+       * libgnat/s-imgboo.adb (Image_Boolean): Add assertions.
+       * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Add assertion.
+
+2022-05-18  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_aux.adb (Is_Immutably_Limited_Type): Do not look through
+       private types as per RM 7.5(8.1).
+       * sem_ch6.adb (Analyze_Function_Return): Use
+       Is_Immutably_Limited_Type as per RM 6.5(5.10).
+
+2022-05-18  Marc Poulhiès  <poulhies@adacore.com>
+
+       * gen_il-gen-gen_nodes.adb (Gen_IL.Gen.Gen_Nodes): Add
+       Is_Homogeneous_Aggregate field for N_Delta_Aggregate nodes.
+       * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Minor reformatting.
+       * sem_aggr.adb (Resolve_Delta_Aggregate): Reject square brackets
+       for record aggregate.
+       (Resolve_Record_Aggregate): Uniformise error message.
+
+2022-05-18  Arnaud Charlet  <charlet@adacore.com>
+
+       * ali.adb (Scan_ALI): Special case a-tags.ali when setting
+       Sec_Stack_Used.
+       * bindgen.adb (Gen_Adainit): Simplify handling of secondary
+       stack related code, and only import __gnat_binder_ss_count when
+       needed.
+       * libgnat/s-secsta.adb (Binder_SS_Count): Default initialize to
+       0.
+
+2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * libgnat/s-dourea.adb ("/"): Add guard for zero and infinite
+       divisor.
+       * libgnat/s-valuer.adb (Scan_Raw_Real): Add guard for very large
+       exponent values.
+
+2022-05-18  Yannick Moy  <moy@adacore.com>
+
+       * sem_elab.adb (Is_Suitable_Construct): Fix for generated
+       constructs.
+
+2022-05-18  Marc Poulhiès  <poulhies@adacore.com>
+
+       * sem_ch3.adb (Analyze_Object_Declaration): Skip predicate check
+       for type conversion if object's subtype and expression's subtype
+       statically match.
+       * exp_prag.adb (Expand_Pragma_Check): Typo fix in comment.
+
+2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_dbug.ads (Build_Subprogram_Instance_Renamings): Fix typo.
+       * exp_dbug.adb (Build_Subprogram_Instance_Renamings): Build the
+       renaming only for actuals of formal objects.
+
+2022-05-18  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch3.adb (Check_Abstract_Overriding): If the type is
+       derived from an untagged type, then don't perform any of the
+       abstract overriding error checks.
+
+2022-05-18  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_aggr.adb (Component_Count): Calculate size as an Uint and
+       only then check if it is in the range of Int, as otherwise the
+       multiplication of Int values can overflow.
+
+2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-gfmafu$(objext).
+       (SIMD_PATH_TARGET_PAIRS): New variable.
+       (TRASYM_DWARF_COMMON_OBJS): Minor tweak.
+       (x86-64/Linux): Use SIMD_PATH_TARGET_PAIRS.
+       (x32/Linux): Likewise.
+       * doc/gnat_rm/the_gnat_library.rst (Generic_Fast_Math_Functions):
+       New entry.
+       * gnat_rm.texi: Regenerate.
+       * impunit.adb (Non_Imp_File_Names_95): Add g-gfmafu.
+       * sem_ch7.adb (Has_Referencer): Do not set In_Nested_Instance for
+       instances of generic packages that do not have a body.
+       * libgnat/a-nalofl__simd.ads: New SIMD-enabled version.
+       * libgnat/a-nuaufl__simd.ads: Likewise.
+       * libgnat/g-gfmafu.ads: New package renaming unit.
+
+2022-05-18  Arnaud Charlet  <charlet@adacore.com>
+
+       * freeze.adb (Should_Freeze_Type): Fix handling of freezing in
+       instances.
+
+2022-05-18  Marc Poulhiès  <poulhies@adacore.com>
+
+       * sem_ch12.adb (Check_Generic_Parent): Use
+       Get_Unit_Instantiation_Node instead of Next.
+
+2022-05-18  Alexandre Oliva  <oliva@adacore.com>
+
+       * libgnat/a-nagefl.ads: Replace mentions of C/unix math library
+       with intrinsics.
+       * libgnat/a-nallfl.ads: Likewise.  State compatibility
+       requirements.
+       * libgnat/a-nalofl.ads: Likewise.
+       * libgnat/a-nuaufl.ads: Likewise.
+
+2022-05-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch8.adb (Analyze_Subprogram_Renaming): Move final test on
+       In_Instance to outer condition.
+
+2022-05-18  Doug Rupp  <rupp@adacore.com>
+
+       * Makefile.rtl: Rename system-qnx-aarch64.ads to
+       system-qnx-arm.ads.
+       (AARCH64 QNX section): Modify to handle both arm and arch64.
+       * tracebak.c (__QNX__): Add new __ARMEL__ section.
+       * sigtramp-arm-qnx.c: New file.
+       * libgnat/system-qnx-aarch64.ads: Renamed to ...
+       * libgnat/system-qnx-arm.ads: this.
+
+2022-05-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_res.adb (Flag_Effectively_Volatile_Objects): Restore
+       redundant guard.
+
+2022-05-17  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch8.adb (Analyze_Subprogram_Renaming): Add error check for
+       the case of a renamed subprogram given by an expanded name whose
+       outermost prefix names a unit that is hidden by the name of the
+       renaming.
+       (Ult_Expanded_Prefix): New local expression function to return
+       the ultimate prefix of an expanded name.
+
+2022-05-17  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * gnat_cuda.ads: Update package-level comments.
+       (Build_And_Insert_CUDA_Initialization): Remove function.
+       * gnat_cuda.adb (Build_And_Insert_CUDA_Initialization): Remove
+       function.
+       (Expand_CUDA_Package): Remove call to
+       Build_And_Insert_CUDA_Initialization.
+
+2022-05-17  Etienne Servais  <servais@adacore.com>
+
+       * freeze.adb (Freeze_Enumeration_Type): Fix comment, enhance
+       message and silence warning for size > 32.
+
+2022-05-17  Yannick Moy  <moy@adacore.com>
+
+       * exp_spark.adb (Expand_SPARK_Potential_Renaming): Deal with no
+       entity case.
+       * inline.ads (Check_Object_Renaming_In_GNATprove_Mode): New
+       procedure.
+       * inline.adb (Check_Object_Renaming_In_GNATprove_Mode): New
+       procedure.
+       (Can_Be_Inlined_In_GNATprove_Mode): Remove case forbidding
+       inlining for subprograms inside generics.
+       * sem_ch12.adb (Copy_Generic_Node): Preserve global entities
+       when inlining in GNATprove mode.
+       * sem_ch6.adb (Analyse_Subprogram_Body_Helper): Remove body to
+       inline if renaming is detected in GNATprove mode.
+
+2022-05-17  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch4.adb (Expand_N_Allocator): For an allocator with an
+       unconstrained discriminated designated type, and whose
+       allocation subtype is constrained, set the
+       Actual_Designated_Subtype of the dereference passed to the init
+       proc of the designated type to be the allocation subtype.
+       * sinfo.ads: Add documentation of new setting of
+       Actual_Designated_Subtype on a dereference used as an actual
+       parameter of call to an init proc associated with an allocator.
+       Also add missing syntax and documentation for the GNAT language
+       extension that allows an expression as a default for a concrete
+       generic formal function.
+
+2022-05-17  Bob Duff  <duff@adacore.com>
+
+       * sinfo.ads: Remove From_At_End.  Update comments.
+       * gen_il-fields.ads, gen_il-gen-gen_nodes.adb, sem_ch11.adb:
+       Remove From_At_End.
+       * exp_ch11.adb (Expand_At_End_Handler): Remove assertion.
+       * fe.h (Exception_Mechanism, Exception_Mechanism_Type, Has_DIC,
+       Has_Invariants, Is_List_Member, List_Containing): Remove
+       declarations that are not used in gigi.
+       * opt.ads (Exception_Mechanism): This is not used in gigi.
+       * exp_util.ads: Minor comment fix.
+
+2022-05-17  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * impunit.adb: Add "g-binsea" to Non_Imp_File_Names_95 list.
+
+2022-05-17  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch5.adb (Analyze_Iterator_Specification): Use
+       Insert_Action when possibly inside an expression.
+
+2022-05-17  Marc Poulhiès  <poulhies@adacore.com>
+
+       * libgnat/g-forstr.adb (Is_Number): Add scientific notation and
+       shortest representation.
+
+2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch3.adb (Expand_N_Full_Type_Declaration): Look into N.
+
+2022-05-17  Bob Duff  <duff@adacore.com>
+
+       * exp_util.adb (Requires_Cleanup_Actions): Remove
+       N_Protected_Body from the case statement, so that case will be
+       covered by "raise Program_Error".
+
+2022-05-17  Bob Duff  <duff@adacore.com>
+
+       * output.adb (Pop_Output, Set_Output): Unconditionally flush
+       output when switching from one output destination to another.
+       Otherwise buffering can cause garbled output.
+       (w): Push/pop the current settings, and temporarily
+       Set_Standard_Error during these procedures.
+
+2022-05-17  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * libgnat/g-binsea.ads, libgnat/g-binsea.adb
+       (GNAT.Binary_Search): New package.
+       * Makefile.rtl (GNATRTL_NONTASKING_OBJS): New item in list.
+       * doc/gnat_rm/the_gnat_library.rst (GNAT.Binary_Search): New
+       package record.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch12.ads (Is_Abbreviated_Instance): Declare.
+       * sem_ch12.adb (Check_Abbreviated_Instance): Declare.
+       (Requires_Conformance_Checking): Declare.
+       (Analyze_Association.Process_Default): Fix subtype of parameter.
+       (Analyze_Formal_Object_Declaration): Check whether it is in the
+       visible part of abbreviated instance.
+       (Analyze_Formal_Subprogram_Declaration): Likewise.
+       (Analyze_Formal_Type_Declaration): Likewise.
+       (Analyze_Package_Instantiation): Do not check for a generic child
+       unit in the case of an abbreviated instance.
+       (Check_Abbreviated_Instance): New procedure.
+       (Check_Formal_Packages): Tidy up.
+       (Copy_Generic_Elist): Fix comment.
+       (Instantiate_Formal_Package): Tidy up.  If the generic unit is a
+       child unit, copy the qualified name onto the abbreviated instance.
+       (Is_Abbreviated_Instance): New function.
+       (Collect_Previous_Instances): Call Is_Abbreviated_Instance.
+       (Requires_Conformance_Checking): New function.
+       * sem_ch7.adb (Analyze_Package_Specification): Do not install the
+       private declarations of the parent for an abbreviated instance.
+
+2022-05-17  Etienne Servais  <servais@adacore.com>
+
+       * sem_ch3.adb (Analyze_Subtype_Declaration): Use underlying type
+       of Indic_Typ.
+       (Constrain_Array): Ditto for T.
+
+2022-05-17  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute [Attribute_Reduce]): Allow
+       'Reduce for Ada 2022 and above.
+       * sem_attr.ads (Attribute_Impl_Def): 'Reduce is no longer
+       implementation defined.
+
+2022-05-17  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * exp_ch9.adb (Expand_N_Asynchronous_Select): Don't generate
+       Abort_Undefers when not Abort_Allowed.
+
+2022-05-17  Marc Poulhiès  <poulhies@adacore.com>
+
+       * exp_ch7.adb: Fix typo.
+
+2022-05-17  Etienne Servais  <servais@adacore.com>
+
+       * lib.ads: initialize `Compiler_State` to `Parsing`.
+
+2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch13.adb (Has_Compatible_Representation): Return true for
+       derived untagged record types without representation clause.
+
+2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch13.ads (Has_Compatible_Representation): Minor tweaks.
+       * sem_ch13.adb (Has_Compatible_Representation): Look directly into
+       the (implementation) base types and simplifiy accordingly.
+       * exp_ch5.adb (Change_Of_Representation): Adjust.
+       * exp_ch6.adb (Expand_Actuals): Likewise.
+
+2022-05-17  Etienne Servais  <servais@adacore.com>
+
+       * sem_ch5.adb (Analyze_Assignment): Remove superfluous call to
+       Original_Node.
+
+2022-05-17  Javier Miranda  <miranda@adacore.com>
+
+       * freeze.adb (Freeze_Entity): Protect the call to
+       Declaration_Node against entities of expressions replaced by the
+       frontend with an N_Raise_CE node.
+
+2022-05-17  Javier Miranda  <miranda@adacore.com>
+
+       * freeze.adb (Build_DTW_Spec): Do not inherit the not-overriding
+       indicator because the DTW wrapper overrides its wrapped
+       subprogram.
+       * contracts.ads (Make_Class_Precondition_Subps): Adding
+       documentation.
+
+2022-05-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch13.adb (Expand_N_Freeze_Entity): Delete freeze nodes for
+       subprograms only if they have no actions.
+       * exp_ch6.adb (Freeze_Subprogram): Put the actions into the Actions
+       field of the freeze node instead of inserting them after it.
+       * sem_elab.adb (Is_SPARK_Semantic_Target): Fix typo in comment.
+       * gcc-interface/trans.cc (process_freeze_entity): Return early for
+       freeze nodes of subprograms with Interface_Alias set.
+
+2022-05-17  Javier Miranda  <miranda@adacore.com>
+
+       * contracts.adb (Build_Call_Helper_Body): Improve handling of
+       the case of a (legal) non-dispatching call to an abstract
+       subprogram.
+
+2022-05-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_attributes.rst
+       (Loop_Entry): Mention pragmas Assert, Assert_And_Cut and Assume;
+       refill.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-17  Etienne Servais  <servais@adacore.com>
+
+       * par-ch3.adb (P_Access_Type_Definition): Outputs an error if
+       token is not "access".
+
+2022-05-17  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch2.adb (Expand_Current_Value): Remove special case for
+       references immediately within pragma argument associations.
+       * exp_prag.adb (Expand_Pragma_Inspection_Point): Remove special
+       case for privals.
+
+2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch7.adb (Inspect_Untagged_Record_Completion): Also move the
+       equality operator on the homonym chain if there is another equality
+       operator in the private part.
+
+2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_attr.adb (Expand_Loop_Entry_Attribute): Disable value
+       propagation when analysing the constant that holds the
+       Loop_Entry prefix value.
+
+2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_attr.adb (Address_Checks): Remove call to
+       Kill_Current_Values for subprogram entities, because this
+       routine only does something for object entities.
+
+2022-05-16  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch7.adb (Build_Finalizer): Disable late evaluation of
+       postconditions for functions returning types which where
+       Has_Unconstrained_Elements is true or are unconstrained arrays.
+
+2022-05-16  Etienne Servais  <servais@adacore.com>
+
+       * exp_ch4.adb (Expand_N_Qualified_Expression): Freeze
+       Target_Type.
+
+2022-05-16  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-aridou.adb (Double_Divide): Add intermediate
+       assertions.
+
+2022-05-16  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * lib-writ.adb (Output_CUDA_Symbols): Check for null packages.
+
+2022-05-16  Joel Brobecker  <brobecker@adacore.com>
+
+       * libgnat/g-debpoo.ads: Improve documentation of the
+       Stack_Trace_Depth parameter.
+
+2022-05-16  Joel Brobecker  <brobecker@adacore.com>
+
+       * init.c (__gnat_install_handler) [__QNX__]: Save sigaction's
+       return value in err before checking err's value.  Fix incorrect
+       signal names in perror messages.
+
+2022-05-16  Joel Brobecker  <brobecker@adacore.com>
+
+       * init.c (__gnat_install_handler) [__QNX__]: Set
+       act.sa_sigaction rather than act.sa_handler.
+
+2022-05-16  Joel Brobecker  <brobecker@adacore.com>
+
+       * cstreams.c: Add <stdlib.h> #include.
+
+2022-05-16  Joel Brobecker  <brobecker@adacore.com>
+
+       * terminals.c: Remove bzero #define on HP/UX or Solaris
+       platforms.
+       (child_setup_tty): Replace bzero call by equivalent call to
+       memset.
+
+2022-05-16  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_util.ads (Storage_Model_Support): Revise comments on most
+       operations within this nested package to reflect that they can
+       now be passed either a type that has aspect Storage_Model_Type
+       or an object of such a type.  Change the names of the relevant
+       formals to SM_Obj_Or_Type. Also, add more precise semantic
+       descriptions in some cases, and declare the subprograms in a
+       more logical order.
+       * sem_util.adb (Storage_Model_Support.Storage_Model_Object): Add
+       an assertion that the type must specify aspect
+       Designated_Storage_Model, rather than returning Empty when it
+       doesn't specify that aspect.
+       (Storage_Model_Support.Storage_Model_Type): Add an assertion
+       that formal must be an object whose type specifies aspect
+       Storage_Model_Type, rather than returning Empty for when it
+       doesn't have such a type (and test Has_Storage_Model_Type_Aspect
+       rather than Find_Value_Of_Aspect).
+       (Storage_Model_Support.Get_Storage_Model_Type_Entity): Allow
+       both objects and types, and add an assertion that the type (or
+       the type of the object) has a value for aspect
+       Storage_Model_Type.
+
+2022-05-16  Etienne Servais  <servais@adacore.com>
+
+       * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
+       Fix condition to return.
+
+2022-05-16  Yannick Moy  <moy@adacore.com>
+
+       * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Update comment.
+
+2022-05-16  Marc Poulhiès  <poulhies@adacore.com>
+
+       * sem_aggr.adb (Resolve_Iterated_Association): Create scope
+       around N_Iterated_Element_Association handling. Analyze a copy
+       of the Loop_Parameter_Specification. Call Analyze instead
+       Analyze_* to be more homogeneous.
+       (Sem_Ch5): Remove now unused package.
+
+2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_util.adb (Insert_Actions) <N_Iterated_Component_Association>:
+       Climb up out of the node if the actions come from Discrete_Choices.
+
+2022-05-16  Javier Miranda  <miranda@adacore.com>
+
+       * sem_disp.adb (Check_Dispatching_Context): When checking to see
+       whether an expression occurs in a class-wide pre/post-condition,
+       also check for the possibility that it occurs in a class-wide
+       preconditions subprogram that was introduced as part of
+       expansion. Without this fix, some legal calls occuring in
+       class-wide preconditions may be incorrectly flagged as violating
+       the "a call to an abstract subprogram must be dispatching" rule.
+
+2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * inline.adb (Cleanup_Scopes): Test the underlying type.
+
+2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_util.ads (Is_Entity_Of_Quantified_Expression): Declare.
+       * sem_util.adb (Is_Entity_Of_Quantified_Expression): New
+       predicate.
+       (New_Copy_Tree): Deal with all entities of quantified
+       expressions.
+       * sem_ch13.adb (Build_Predicate_Functions): Get rid of
+       superfluous tree copying and remove obsolete code.
+       * sem_ch6.adb (Fully_Conformant_Expressions): Deal with all
+       entities of quantified expressions.
+
+2022-05-16  Steve Baird  <baird@adacore.com>
+
+       * exp_ch7.adb (Build_Finalize_Statements): Add Last_POC_Call
+       variable to keep track of the last "early finalization" call
+       generated for type extension's finalization procedure. If
+       non-empty, then this will indicate the point at which to insert
+       the call to the parent type's finalization procedure. Modify
+       nested function Process_Component_List_For_Finalize to set this
+       variable (and avoid setting it during a recursive call).  If
+       Last_POC_Call is empty, then insert the parent finalization call
+       before, rather than after, the finalization code for the
+       extension components.
+
+2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo-utils.adb (Remove_Entity): Fix couple of oversights.
+       * exp_ch3.adb (Is_User_Defined_Equality): Delete.
+       (User_Defined_Eq): Call Get_User_Defined_Equality.
+       (Make_Eq_Body): Likewise.
+       (Predefined_Primitive_Eq_Body): Call Is_User_Defined_Equality.
+       * exp_ch4.adb (Build_Eq_Call): Call Get_User_Defined_Equality.
+       (Is_Equality): Delete.
+       (User_Defined_Primitive_Equality_Op): Likewise.
+       (Find_Aliased_Equality): Call Is_User_Defined_Equality.
+       (Expand_N_Op_Eq): Call Underlying_Type unconditionally.
+       Do not implement AI12-0101 + AI05-0123 here.
+       (Expand_Set_Membership): Call Resolve_Membership_Equality.
+       * exp_ch6.adb (Expand_Call_Helper): Remove obsolete code.
+       * sem_aux.ads (Is_Record_Or_Limited_Type): Delete.
+       * sem_aux.adb (Is_Record_Or_Limited_Type): Likewise.
+       * sem_ch4.ads (Nondispatching_Call_To_Abstract_Operation): Declare.
+       * sem_ch4.adb (Analyze_Call): Call Call_Abstract_Operation.
+       (Analyze_Membership_Op): Call Resolve_Membership_Equality.
+       (Nondispatching_Call_To_Abstract_Operation): New procedure.
+       (Remove_Abstract_Operations): Call it.
+       * sem_ch6.adb (Check_Untagged_Equality): Remove obsolete error and
+       call Is_User_Defined_Equality.
+       * sem_ch7.adb (Inspect_Untagged_Record_Completion): New procedure
+       implementing AI12-0101 + AI05-0123.
+       (Analyze_Package_Specification): Call it.
+       (Declare_Inherited_Private_Subprograms): Minor tweak.
+       (Uninstall_Declarations): Likewise.
+       * sem_disp.adb (Check_Direct_Call): Adjust to new implementation
+       of Is_User_Defined_Equality.
+       * sem_res.ads (Resolve_Membership_Equality): Declare.
+       * sem_res.adb (Resolve): Replace direct error handling with call to
+       Nondispatching_Call_To_Abstract_Operation
+       (Resolve_Call): Likewise.
+       (Resolve_Equality_Op): Likewise.  mplement AI12-0413.
+       (Resolve_Membership_Equality): New procedure.
+       (Resolve_Membership_Op): Call Get_User_Defined_Equality.
+       * sem_util.ads (Get_User_Defined_Eq): Rename into...
+       (Get_User_Defined_Equality): ...this.
+       * sem_util.adb (Get_User_Defined_Eq): Rename into...
+       (Get_User_Defined_Equality): ...this. Call Is_User_Defined_Equality.
+       (Is_User_Defined_Equality): Also check the profile but remove tests
+       on Comes_From_Source and Parent.
+       * sinfo.ads (Generic_Parent_Type): Adjust field description.
+       * uintp.ads (Ubool): Invoke user-defined equality in predicate.
+
+2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch3.adb (User_Defined_Eq): Replace duplicated code with a
+       call to Get_User_Defined_Eq.
+
+2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch3.adb (Build_Untagged_Equality): Exit early when the
+       outcome of a loop is already known.
+
+2022-05-16  Olivier Hainque  <hainque@adacore.com>
+
+       * Makefile.rtl: Add aarch64 to the list of CPUs for which
+       GNATLIB_SHARED maps to gnatlib-shared-dual for vxworks7r2.
+
+2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch4.adb (Analyze_Negation): Minor tweak.
+       (Analyze_Unary_Op): Likewise.
+
+2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_ch3.adb (Build_Assignment): Adjust to the new definition of
+       Incomplete_View field.
+       * sem_ch10.ads (Decorate_Type): Declare.
+       * sem_ch10.adb (Decorate_Type): Move to library level.
+       (Install_Limited_With_Clause): In the already analyzed case, also
+       deal with incomplete type declarations present in the sources and
+       simplify the replacement code.
+       (Build_Shadow_Entity): Deal with swapped views in package body.
+       (Restore_Chain_For_Shadow): Deal with incomplete type declarations
+       present in the sources.
+       * sem_ch3.adb (Analyze_Full_Type_Declaration): Adjust to the new
+       definition of Incomplete_View field.
+       (Build_Incomplete_Type_Declaration): Small consistency tweak.
+       Set the incomplete type as the Incomplete_View of the full type.
+       If the scope is a package with a limited view, build a shadow
+       entity for the incomplete type.
+       * sem_ch6.adb (Analyze_Subprogram_Body_Helper): When replacing
+       the limited view of a CW type as designated type of an anonymous
+       access return type, get to the CW type of the incomplete view of
+       the tagged type, if any.
+       (Collect_Primitive_Operations): Adjust to the new definition of
+       Incomplete_View field.
+       * sinfo.ads (Incomplete_View): Denote the entity itself instead
+       of its declaration.
+       * sem_util.adb: Remove call to Defining_Entity.
+
+2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb (Type_Or_Variable_Has_Enabled_Property): Given a
+       subtype recurse into its base type.
+
+2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb (Type_Or_Variable_Has_Enabled_Property): Clarify.
+
+2022-05-16  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.adb (Is_Enabled): Remove; use Is_Enabled_Pragma
+       instead.
+
+2022-05-16  Martin Liska  <mliska@suse.cz>
+
+       * locales.c (iso_639_1_to_639_3): Use ARRAY_SIZE.
+       (language_name_to_639_3): Likewise.
+       (country_name_to_3166): Likewise.
+
+2022-05-13  Alexandre Oliva  <oliva@adacore.com>
+
+       * gcc-interface/decl.cc (is_cplusplus_method): Build proper
+       String for Get_External_Name.
+
+2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch3.adb (Derive_Subprogram): For a function, also copy the
+       Returns_By_Ref flag from the parent.
+
+2022-05-13  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_ch13.adb (Check_Aspect_At_Freeze_Point): Analyze the
+       expression of the aspect at this point, like other aspects that
+       denote simple entities. Ensures that function
+       Storage_Model_Object will have an entity to retrieve from the
+       aspect expression. Also, move comment about aspects that don't
+       require delay analysis in front of last alternative of the case
+       statement, where it's supposed to be.
+
+2022-05-13  Javier Miranda  <miranda@adacore.com>
+
+       * contracts.adb (Build_Unique_Name): New subprogram.
+       (Make_Class_Precondition_Subps): Use Build_Unique_Name to
+       generate the names of the call helpers and the name of indirect
+       call wrappers.
+       * freeze.adb (Needs_Wrapper): Remove dead code.
+       (Check_Inherited_Conditions): Defer building helpers and ICW
+       until all the dispatch table wrappers have been built and
+       analyzed. Required to ensure uniqueness in their names because
+       when building these wrappers for overlapped subprograms their
+       homonym number is not definite until they have been analyzed.
+
+2022-05-13  Arnaud Charlet  <charlet@adacore.com>
+
+       * libgnarl/s-taprop__linux.adb (Initialize): Do not use an
+       alternate stack if no handler for SEGV is installed.
+
+2022-05-13  Alexandre Oliva  <oliva@adacore.com>
+
+       * doc/gnat_rm/security_hardening_features.rst (Control Flow
+       Redundancy): Drop mentions of noreturn and tail calls.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-13  Ghjuvan Lacambre  <lacambre@adacore.com>
+
+       * ali.adb: Introduce new 'K' line in ALI files, used to
+       represent CUDA kernel entries.
+       * ali.ads: Create new CUDA_Kernels table, which contains entries
+       of type CUDA_Kernel_Record. Each CUDA_Kernel_Record corresponds
+       to a K line in an ali file.
+       * bindgen.adb: Introduce new Gen_CUDA_Init procedure in the
+       binder, which generates CUDA kernel registration code.
+       * gnat_cuda.adb: Move Get_CUDA_Kernels spec to package spec to
+       make it available to bindgen.adb.
+       * gnat_cuda.ads: Likewise.
+       * lib-writ.adb: Introduce new Output_CUDA_Symbols procedure,
+       which generates one 'K' line in the ALI file per visible CUDA
+       kernel.
+       * opt.ads: Introduce Enable_CUDA_Expansion option, triggered by
+       using the -gnatd_c flag.
+       * switch-b.adb: Likewise.
+       * switch-c.adb: Likewise.
+
+2022-05-13  Marc Poulhiès  <poulhies@adacore.com>
+
+       * exp_aggr.adb (Gen_Loop): Create scope for loop variable of
+       iterated components.
+
+2022-05-13  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/a-chtgfk.adb (Checked_Equivalent_Keys, Checked_Index):
+       Remove useless functions.
+       (Delete_Key_Sans_Free, Find, Generic_Conditional_Insert): Adapt
+       to removal of wrapper functions.
+       * libgnat/a-chtgfk.ads (Checked_Equivalent_Keys, Checked_Index):
+       Remove useless functions.
+       * libgnat/a-chtgfo.adb (Checked_Index): Remove useless function.
+       (Clear): Delete code commented out regarding Busy and Lock
+       management.
+       (Delete_Node_At_Index): Delete unused procedure.
+       (Delete_Node_Sans_Free, Free, Generic_Read, Next): Adapt to
+       removal of wrapper functions.
+       * libgnat/a-chtgfo.ads (Checked_Index): Remove useless function.
+       (Delete_Node_At_Index): Delete unused procedure.
+
+2022-05-13  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/a-cfhama.adb (Generic_Allocate): Retype to avoid
+       aliasing.
+       (Assign, Move): Remove address comparison.
+       (Include): Insert constants for subtype constraints.
+       (Insert): Rewrite to avoid aliasing and function with side-effects.
+       * libgnat/a-cfhase.adb (Generic_Allocate): Retype to avoid
+       aliasing.
+       (Assign, Move): Remove address comparison.
+       (Difference, Intersection, Is_Subset, Overlap,
+       Symmetric_Difference, Union): Remove address comparison.  Insert
+       constants for subtype constraints.
+       (Insert): Rewrite to avoid aliasing and function with
+       side-effects.
+       * libgnat/a-chtgfk.adb (Checked_Equivalent_Keys, Checked_Index,
+       Delete_Key_Sans_Free, Find, Generic_Replace_Element, Index):
+       Type for hash tables not tagged anymore.
+       (Generic_Conditional_Insert): New_Node generic formal is a
+       procedure taking the hash table as first parameter now, to avoid
+       aliasing in the caller.
+       * libgnat/a-chtgfk.ads: Same.
+       * libgnat/a-chtgfo.adb (Checked_Index, Clear,
+       Delete_Node_At_Index, Delete_Node_Sans_Free, First, Free,
+       Generic_Allocate, Generic_Iteration, Generic_Read,
+       Generic_Write, Index, Next): Type for hash tables not tagged
+       anymore.
+       (Generic_Equal): Removed tagged. Remove address comparison.
+       * libgnat/a-chtgfo.ads: Same.
+       * libgnat/a-cohata.ads (Hash_Table_Type): Remove tagged.
+
+2022-05-13  Yannick Moy  <moy@adacore.com>
+
+       * Makefile.rtl: Add new files.
+       * libgnat/a-cfhama.adb: Use formal version of hash tables.
+       * libgnat/a-cfhama.ads: Same.
+       * libgnat/a-cfhase.adb: Same.
+       * libgnat/a-cfhase.ads: Same.
+       * libgnat/a-chtgfk.adb: New unit for formal containers, modified
+       version of Generic_Bounded_Keys.
+       * libgnat/a-chtgfk.ads: Same.
+       * libgnat/a-chtgfo.adb: New unit for formal containers, modified
+       version of Generic_Bounded_Operations.
+       * libgnat/a-chtgfo.ads: Same.
+       * libgnat/a-cohata.ads (Generic_Formal_Hash_Table_Types): Third
+       version of the type for hash tables, equivalent to the bounded
+       version without tampering checks.
+
+2022-05-13  Javier Miranda  <miranda@adacore.com>
+
+       * freeze.adb (Check_Inherited_Conditions): Dispatch table
+       wrappers must be placed in the list of entities of their scope
+       at the same place of their wrapped primitive. This is required
+       for private types since these wrappers are built when their full
+       tagged type declaration is frozen but they may override a
+       primitive defined in the public part of the package (and it is
+       important to maintain the wrapper in the list of public entities
+       of the package to ensure their correct visibility).
+
+2022-05-13  Johannes Kanig  <kanig@adacore.com>
+
+       * osint.ads, osint.adb (Relocate_Path): If the GNSA_ROOT
+       environment variable is set, we use that as the prefix, instead
+       of computing the prefix from the executable location.
+
+2022-05-13  Steve Baird  <baird@adacore.com>
+
+       * exp_ch3.ads (Build_Intialization_Call): Add new formal
+       parameter, Init_Control_Actual, with default value. Clients
+       outside of package Exp_Ch3 are unaffected.
+       * exp_ch3.adb (Initialization_Control): new package; support for
+       this 4-valued parameter.  The existing Requires_Late_Init
+       function is moved into this new package.
+       (Build_Initialization_Call): Add new formal parameter for
+       subprogram body, use this new formal parameter in generating an
+       init proc call.
+       (Build_Record_Init_Proc): Replace Set_Tag Boolean formal
+       parameter with 4-valued Init_Control_Formal. Wrap if-statements
+       with appropriate conditions around tag initialization, early
+       initialization, and late initialization statements.
+       * exp_util.adb (Build_Task_Image_Decl): Avoid problem with
+       duplicate declarations when an init proc for a type extension
+       calls the parent type's init proc twice.
+
+2022-05-13  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch5.adb (Analyze_Iterator_Specification): Fix Typ in the
+       case of a class-wide derived iterator.
+
+2022-05-13  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/a-strbou.ads (Overwrite): Switch to >= operator in
+       contracts.
+       * libgnat/a-strsup.adb (Super_Overwrite): Switch to >= operator
+       in code of procedure (function already uses it).
+       * libgnat/a-strsup.ads (Super_Overwrite): Switch to >= operator
+       in contracts.
+
+2022-05-13  Etienne Servais  <servais@adacore.com>
+
+       * doc/gnat_rm/representation_clauses_and_pragmas.rst: Fix code
+       snippet.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * aspects.adb (Find_Value_Of_Aspect): Add guard.
+       * sem_ch4.adb (Complete_Object_Operation): Remove obsolete code.
+       * sem_ch5.adb (Has_Sec_Stack_Default_Iterator): Add guard.
+
+2022-05-13  Javier Miranda  <miranda@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference): The expansion of
+       'Address in a call to an instantiation of the implicit
+       subprogram To_Pointer with a class-wide interface type target
+       requires adding an implicit type conversion to force
+       displacement of the "this" pointer.
+
+2022-05-13  Javier Miranda  <miranda@adacore.com>
+
+       * sem_attr.adb (Resolve_Attribute): Ensure that attribute
+       expressions are resolved at this stage; required for preanalyzed
+       references to discriminants since their resolution (and
+       expansion) will take care of updating their Entity attribute to
+       reference their discriminal.
+
+2022-05-13  Justin Squirek  <squirek@adacore.com>
+
+       * sem_util.adb (Wrong_Type): Avoid using the first subtype of
+       the expected type in error messages when the expected type is
+       not internally generated.
+
+2022-05-13  Alexandre Oliva  <oliva@adacore.com>
+
+       * doc/gnat_rm/security_hardening_features.rst: Add subsection on
+       Control Flow Redundancy.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_util.adb (Insert_Actions) <N_Iteration_Scheme>: Check that
+       it is a WHILE iteration scheme before using Condition_Actions.
+
+2022-05-13  Piotr Trojanek  <trojanek@adacore.com>
+
+       * atree.adb, gen_il-gen.adb, osint.adb, set_targ.adb,
+       sinput.adb, table.adb, treepr.adb, types.ads: Replace uses of
+       Unchecked_Conversion in the compiler itself.
+       * libgnarl/a-reatim.adb, libgnarl/s-osinte__gnu.ads,
+       libgnarl/s-osinte__kfreebsd-gnu.ads, libgnat/a-coboho.adb,
+       libgnat/a-stuten.ads, libgnat/s-putima.adb: Likewise in the
+       runtime.
+       * doc/gnat_ugn/gnat_and_program_execution.rst: Likewise in
+       documentation.
+       * gnat_ugn.texi: Regenerate.
+
+2022-05-13  Piotr Trojanek  <trojanek@adacore.com>
+
+       * butil.adb, sem.adb, sinput.adb, types.ads, xref_lib.adb:
+       Replace uses of Unchecked_Deallocation with
+       Ada.Unchecked_Deallocation.
+       * doc/gnat_ugn/gnat_and_program_execution.rst: Likewise for the
+       documentation; fix casing of GNAT.IO.
+       * gnat_ugn.texi: Regenerate.
+
+2022-05-13  Marc Poulhiès  <poulhies@adacore.com>
+
+       * sem_aggr.adb (Resolve_Array_Aggregate): Fix ARM reference.
+       Remove useless loop.
+
+2022-05-13  Etienne Servais  <servais@adacore.com>
+
+       * sem_ch3.adb (Analyze_Subtype_Declaration): Fix typo in
+       comment.
+
+2022-05-13  Justin Squirek  <squirek@adacore.com>
+
+       * sem_ch6.adb (Check_Return_Construct_Accessibility): Modify
+       generation of run-time accessibility checks to account for cases
+       where Extra_Accessibility_Of_Result should be used versus the
+       level of the enclosing subprogram. Use original node to avoid
+       checking against expanded code. Disable check generation for
+       tagged type case.
+       (Is_Formal_Of_Current_Function): Added to encompass a predicate
+       used within Check_Return_Construct_Accessibility to test if an
+       associated expression is related to a relevant formal.
+       * sem_util.adb, sem_util.ads (Enclosing_Subprogram): Modified to
+       accept Node_Or_Entity_Id.
+       (Innermost_Master_Scope_Depth): Calculate level based on the
+       subprogram of a return statement instead of the one returned by
+       Current_Subprogram.
+       (Needs_Result_Accessibility_Level): Remove
+       Disable_Coextension_Cases constant, and disable the tagged type
+       case for performance reasons.
+
+2022-05-13  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_res.adb (Flag_Effectively_Volatile_Objects): Ignore
+       component and discriminant identifiers.
+
+2022-05-13  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_res.adb (Flag_Effectively_Volatile_Objects): Remove
+       redundant guard.
+
+2022-05-13  Justin Squirek  <squirek@adacore.com>
+
+       * sem_ch8.adb (Determine_Package_Scope): Created to centralize
+       the calculation of which package a given use clause belongs to.
+       (Most_Descendant_Use_Clause): Modified to call
+       Determine_Package_Scope.
+       * sem_util.adb, sem_util.ads (Enclosing_Package): Modified to
+       handle both entity and node ids.
+
+2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * gnat1drv.adb (Gnat1drv): Skip postponed checks when there are
+       errors.
+
+2022-05-12  Arnaud Charlet  <charlet@adacore.com>
+
+       * doc/gnat_ugn/the_gnat_compilation_model.rst: Fix URL.
+       * gnat_ugn.texi: Regenerate.
+
+2022-05-12  Bob Duff  <duff@adacore.com>
+
+       * namet.ads, namet.adb (Write_Name_For_Debug): Add Quote
+       parameter to allow conditional addition of quotes. Note that
+       some calls to Write_Name_For_Debug, for example for file names,
+       shouldn't have quotes, as in some_package.adb:123:45.
+       * treepr.adb (Print_Name): Add double quotes around the name
+       using the above Quote parameters.
+
+2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_res.adb (Resolve_Actuals): Simplify with N_Op_Compare.
+       * sem_util.adb (Replace_Null_Operand,
+       Null_To_Null_Address_Convert_OK): Likewise.
+
+2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.ads (Is_Selector_Name): Remove spec.
+       * sem_util.adb (Is_Selector_Name): Remove body.
+
+2022-05-12  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_warn.adb (Has_Junk_Name): Add more dummy names.
+
+2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * lib-xref.adb (Generate_Reference): Fix comment and implement
+       it precisely.
+
+2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * atree.adb, atree.ads: Move WITH clause from spec to body; to
+       prevent new warnings stopping the bootstrap.
+       * fmap.adb, fname-sf.adb, libgnat/a-direct.adb,
+       libgnat/s-bignum.adb: Remove unnecessary WITH clauses; to
+       prevent new warnings stopping the bootstrap.
+       * sem_ch12.adb (Analyze_Subprogram_Instantiation): Only set
+       Is_Instantiated flag when the instance is in the extended main
+       source unit.
+
+2022-05-12  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-valuei.ads: Remove pragma Warnings Off.
+       * libgnat/s-valueu.ads: Same.
+       * libgnat/s-valuti.ads: Same.
+
+2022-05-12  Yannick Moy  <moy@adacore.com>
+
+       * sem_util.adb (Check_Result_And_Post_State): Exempt trivial
+       post.
+
+2022-05-12  Arnaud Charlet  <charlet@adacore.com>
+
+       * ali.adb, ali.ads, bcheck.adb, exp_ch11.adb, fe.h,
+       gnat1drv.adb, opt.adb, opt.ads, targparm.adb, targparm.ads,
+       lib-writ.adb: Get rid of Frontend_Exceptions processing.
+       * libgnat/system-aix.ads, libgnat/system-darwin-arm.ads,
+       libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads,
+       libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads,
+       libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads,
+       libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads,
+       libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads,
+       libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads,
+       libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads,
+       libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads,
+       libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads,
+       libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads,
+       libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads,
+       libgnat/system-qnx-aarch64.ads, libgnat/system-rtems.ads,
+       libgnat/system-solaris-sparc.ads,
+       libgnat/system-solaris-x86.ads,
+       libgnat/system-vxworks-arm-rtp-smp.ads,
+       libgnat/system-vxworks-arm-rtp.ads,
+       libgnat/system-vxworks-arm.ads,
+       libgnat/system-vxworks-e500-kernel.ads,
+       libgnat/system-vxworks-e500-rtp-smp.ads,
+       libgnat/system-vxworks-e500-rtp.ads,
+       libgnat/system-vxworks-ppc-kernel.ads,
+       libgnat/system-vxworks-ppc-rtp-smp.ads,
+       libgnat/system-vxworks-ppc-rtp.ads,
+       libgnat/system-vxworks-x86-kernel.ads,
+       libgnat/system-vxworks-x86-rtp-smp.ads,
+       libgnat/system-vxworks-x86-rtp.ads,
+       libgnat/system-vxworks7-aarch64-rtp-smp.ads,
+       libgnat/system-vxworks7-aarch64.ads,
+       libgnat/system-vxworks7-arm-rtp-smp.ads,
+       libgnat/system-vxworks7-arm.ads,
+       libgnat/system-vxworks7-e500-kernel.ads,
+       libgnat/system-vxworks7-e500-rtp-smp.ads,
+       libgnat/system-vxworks7-e500-rtp.ads,
+       libgnat/system-vxworks7-ppc-kernel.ads,
+       libgnat/system-vxworks7-ppc-rtp-smp.ads,
+       libgnat/system-vxworks7-ppc-rtp.ads,
+       libgnat/system-vxworks7-ppc64-kernel.ads,
+       libgnat/system-vxworks7-ppc64-rtp-smp.ads,
+       libgnat/system-vxworks7-x86-kernel.ads,
+       libgnat/system-vxworks7-x86-rtp-smp.ads,
+       libgnat/system-vxworks7-x86-rtp.ads,
+       libgnat/system-vxworks7-x86_64-kernel.ads,
+       libgnat/system-vxworks7-x86_64-rtp-smp.ads: Remove
+       Frontend_Exceptions line.
+       * gcc-interface/decl.cc, gcc-interface/trans.cc
+       (gnat_to_gnu_entity, gnat_to_gnu_subprog_type, gigi,
+       gnat_to_gnu): Remove Front_End_SJLJ processing and always assume
+       Back_End_Exceptions.
+
+2022-05-12  Bob Duff  <duff@adacore.com>
+
+       * namet.ads, namet.adb (Write_Name_For_Debug): New more-robust
+       version of Write_Name.
+       (Destroy_Global_Name_Buffer): New procedure to help detect bugs
+       related to use of Global_Name_Buffer.  Misc cleanup and comment
+       improvements. E.g. we don't need to document every detail of
+       debugging printouts, especially since they can change.
+       * uname.ads, uname.adb (Write_Unit_Name_For_Debug): New
+       more-robust version of Write_Unit_Name.
+       (Get_Unit_Name_String): Pass buffer in, instead of using the
+       global variable. Misc cleanup. Remove the "special fudge", which
+       is apparently not needed, and anyway the comment "the %s or %b
+       has already been eliminated" seems wrong.
+       (Write_Unit_Name): Call the new version of Get_Unit_Name_String.
+       * errout.adb (Set_Msg_Insertion_Unit_Name): Call the new version
+       of Get_Unit_Name_String. We pass the global variable here,
+       because it's too much trouble to disentangle such uses in
+       Errout.
+       * sem_util.ads, sem_util.adb, sem_dist.adb
+       (Get_Library_Unit_Name): New version of
+       Get_Library_Unit_Name_String that avoids usage of the global
+       variable.
+       * casing.ads, casing.adb, exp_prag.adb, exp_util.adb
+       (Set_All_Upper_Case): Remove. There is no need for a wrapper
+       here -- code is clearer without it.
+       * treepr.adb (Print_Name): Call Write_Name_For_Debug, which
+       deals with No_Name (etc), rather than duplicating that here.
+       Note that the call to Get_Name_String was superfluous.
+       (Tree_Dump): Call Write_Unit_Name_For_Debug instead of
+       Write_Unit_Name, which crashes if not Is_Valid_Name.
+       * erroutc.ads: Improve comments.
+       * erroutc.adb (Set_Msg_Name_Buffer): Call
+       Destroy_Global_Name_Buffer to detect potential bugs where it
+       incorrectly looks at the global variable.
+       * sinput.adb (Write_Location): Call Write_Name_For_Debug instead
+       of Write_Name, so it won't blow up on invalid data.
+       * sinput.ads: Improve comments; remove some verbosity.
+       * libgnat/s-imagef.adb: Fix typo in comment.
+
+2022-05-12  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-imageu.adb (Set_Image_Unsigned): Add lemma.
+       * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Add assertion.
+
+2022-05-12  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-aridou.ads: Remove use-clause, add renames and
+       subtypes.
+       * libgnat/s-exponn.ads: Same.
+       * libgnat/s-expont.ads: Same.
+       * libgnat/s-widthu.ads: Same.
+
+2022-05-12  Etienne Servais  <servais@adacore.com>
+
+       * csets.adb (Fold_Latin_9): Fix y with diaeresis.
+       (Fold_IBM_PC_850): Fix o with stroke.
+
+2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_type.adb (Valid_Boolean_Arg): Remove redundant guard.
+
+2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_type.adb (Valid_Boolean_Arg): Operands of Raise_Type are
+       valid boolean arguments.
+
+2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch4.adb (Possible_Type_For_Conditional_Expression): Add
+       test for subtype conformance in the cases of
+       access-to-subprogram types.
+
+2022-05-12  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-imagef.adb: Justify false message from CodePeer.
+
+2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch4.adb (Analyze_Case_Expression): Rewrite.
+       (Analyze_If_Expression): Likewise.
+       (Possible_Type_For_Conditional_Expression): New function.
+       * sem_type.adb (Specific_Type): Retur the base type in more
+       cases.
+
+2022-05-12  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-imagef.adb: Adapt to new signature of Image_I, by
+       providing ghost imported subprograms. For now, no contract is
+       used on these subprograms, as System.Image_F is not proved.
+       * libgnat/s-imagef.ads: Add modular type Uns as formal
+       parameter, to use in defining Int_Params for instantiating
+       Image_I.
+       * libgnat/s-imagei.adb: Add contracts and ghost code.
+       * libgnat/s-imagei.ads: Replace Int formal parameter by package
+       Int_Params, which bundles type Int and Uns with ghost
+       subprograms.  Add contracts.
+       * libgnat/s-imfi128.ads: Adapt to new formal of Image_F.
+       * libgnat/s-imfi32.ads: Adapt to new formal of Image_F.
+       * libgnat/s-imfi64.ads: Adapt to new formal of Image_F.
+       * libgnat/s-imgint.ads: Adapt to new formals of Image_I.
+       * libgnat/s-imglli.ads: Adapt to new formals of Image_I.
+       * libgnat/s-imgllli.ads: Adapt to new formals of Image_I.
+       * libgnat/s-valint.ads: Adapt to new formals of Value_I.
+       * libgnat/s-vallli.ads: Adapt to new formals of Value_I.
+       * libgnat/s-valllli.ads: Adapt to new formals of Value_I.
+       * libgnat/s-valuei.adb (Prove_Scan_Only_Decimal_Ghost): New
+       ghost lemma.
+       * libgnat/s-valuei.ads: New formal parameters to prove the new
+       lemma.
+       * libgnat/s-valuti.ads (Int_Params): Define a generic package to
+       be used as a trait-like formal parameter in Image_I and other
+       generics that need to instantiate Image_I.
+       * libgnat/s-widthu.ads (Big_10): Qualify the 10 literal.
+
+2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch4.adb (Find_Arithmetic_Types): Use local variables.
+       (Find_Boolean_Types): Rewrite modeled on Find_Arithmetic_Types.
+
+2022-05-12  Alexandre Oliva  <oliva@adacore.com>
+
+       * doc/gnat_rm/security_hardening_features.rst (Hardened
+       Booleans): New.
+       * exp_util.adb (Adjust_Condition): Perform validity checking on
+       hardbool-annotated types even with -gnatVT.
+       * gnat_rm.texi: Regenerate.
+       * gcc-interface/utils.cc (gnat_internal_attribute_table): Ignore
+       hardbool.
+
+2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch9.adb (Build_Protected_Entry): Set scope of the nested
+       block to spec and not the body of the procedure created for a
+       protected entry.
+
+2022-05-12  Etienne Servais  <servais@adacore.com>
+
+       * sem_ch3.adb (Find_Type_Of_Object): Remove duplicate "i" in
+       comment.
+
+2022-05-12  Marc Poulhiès  <poulhies@adacore.com>
+
+       * csets.adb (Initialize): Only treat square bracket as valid
+       identifier character for Ada versions prior to Ada 2022.
+       * style.ads (Check_Left_Paren): Rename...
+       (Check_Left_Paren_Square_Bracket): ...to this.
+       * styleg.adb (Check_Left_Bracket): Rename...
+       (Check_Left_Paren_Square_Bracket): ...to this.
+       * styleg.ads (Check_Left_Paren): Rename...
+       (Check_Left_Paren_Square_Bracket): ...to this.
+       * scng.adb (Scan): Add check for spacing around left square
+       bracket and use new name for Check_Left_Paren_Square_Bracket.
+       * libgnat/a-szmzco.ads (Control_Ranges, Graphic_Ranges)
+       (Letter_Ranges, Decimal_Digit_Ranges, ISO_646_Ranges)
+       (Character_Ranges): Fix style (remove extra space).
+       * libgnat/a-swmwco.ads (Control_Ranges, Graphic_Ranges)
+       (Letter_Ranges, Decimal_Digit_Ranges, ISO_646_Ranges)
+       (Character_Ranges): Likewise.
+       * opt.adb (Set_Config_Switches): Remove [ from Identifier_Char
+       set.
+
+2022-05-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_type.adb (Specific_Type): Add swapped cases for interfaces.
+
+2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst:
+       (Export_Object, Import_Object, Short_Descriptors): Fix pragma
+       syntax specification.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * ali.adb (Hash): Reuse GNAT.String_Hash.Hash and don't pollute
+       the Name_Id table.
+
+2022-05-12  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_ugn/the_gnat_compilation_model.rst (Configuration
+       Pragmas): Add Aggregate_Individually_Assign; otherwise the list
+       is complete except for some obsoleted pragmas, which most likely
+       are intentionally omitted.
+       * gnat_ugn.texi: Regenerate.
+
+2022-05-11  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-imaged.ads: Remove Pure.
+       * libgnat/s-imagef.ads: Remove Pure.
+       * libgnat/s-imager.ads: Remove Pure.
+       * libgnat/s-imageu.adb: Add ghost code.
+       * libgnat/s-imageu.ads: Add contracts.
+       * libgnat/s-imde128.ads: Remove Pure.
+       * libgnat/s-imde32.ads: Remove Pure.
+       * libgnat/s-imde64.ads: Remove Pure.
+       * libgnat/s-imfi128.ads: Remove Pure.
+       * libgnat/s-imfi32.ads: Remove Pure.
+       * libgnat/s-imfi64.ads: Remove Pure.
+       * libgnat/s-imgflt.ads: Remove Pure.
+       * libgnat/s-imglfl.ads: Remove Pure.
+       * libgnat/s-imgllf.ads: Remove Pure.
+       * libgnat/s-imglllu.ads: Instantiate with ghost subprograms.
+       * libgnat/s-imgllu.ads: Instantiate with ghost subprograms.
+       * libgnat/s-imgrea.ads: Remove Pure.
+       * libgnat/s-imguns.ads: Instantiate with ghost subprograms.
+       * libgnat/s-imguti.ads: Remove Pure.
+       * libgnat/s-valueu.adb (Prove_Iter_Scan_Based_Number_Ghost,
+       Prove_Scan_Only_Decimal_Ghost): New lemmas.
+       * libgnat/s-valueu.ads (Uns_Option): Do not make type ghost to
+       be able to use it as formal in instantiations.
+       (Only_Decimal_Ghost): New ghost query.
+       (Prove_Iter_Scan_Based_Number_Ghost,
+       Prove_Scan_Only_Decimal_Ghost): New lemmas.
+       * libgnat/s-widlllu.ads: Adapt to changes in Width_U.
+       * libgnat/s-widllu.ads: Adapt to changes in Width_U.
+       * libgnat/s-widthu.adb: Change generic function in generic
+       package in order to complete the postcondition. Tighten the
+       upper bound on the result by 1.
+       * libgnat/s-widthu.ads: Same.
+       * libgnat/s-widuns.ads: Adapt to changes in Width_U.
+       * gcc-interface/Make-lang.in: Add dependencies on a-nubinu,
+       a-numeri.ads and a-widuns.ads.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * snames.ads-tmpl (Detect_Blocking): Move after
+       Default_Storage_Pool.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Analyze_Pragma): Remove custom check for
+       Compile_Time_Error and Compile_Time_Warning pragmas.
+       * snames.ads-tmpl (Compile_Time_Error, Compile_Time_Warning):
+       Move beyond Last_Configuration_Pragma_Name.
+
+2022-05-11  Marc Poulhiès  <poulhies@adacore.com>
+
+       * libgnat/a-direct.adb (Start_Search_Internal): Use parentheses
+       for record aggregate.
+       * libgnat/a-stbubo.adb (Get_UTF_8): Likewise.
+       * libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
+       * libgnat/a-stzbou.ads (Null_Bounded_Wide_Wide_String):
+       Likewise.
+       * libgnat/a-swmwco.ads (Lower_Case_Mapping, Basic_Mapping):
+       Likewise.
+       * libgnat/a-szmzco.ads (Lower_Case_Mapping, Basic_Mapping):
+       Likewise.
+       * libgnat/s-statxd.adb (Fields): Likewise.
+       * libgnat/s-stausa.adb (Initialize): Likewise.
+       * sem_aggr.adb (Resolve_Record_Aggregate): Reject aggregates
+       using brackets.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst,
+       doc/gnat_rm/implementation_of_specific_ada_features.rst,
+       doc/gnat_rm/representation_clauses_and_pragmas.rst,
+       doc/gnat_rm/the_gnat_library.rst,
+       doc/gnat_rm/the_implementation_of_standard_i_o.rst,
+       doc/gnat_ugn/building_executable_programs_with_gnat.rst,
+       doc/gnat_ugn/gnat_and_program_execution.rst,
+       doc/gnat_ugn/platform_specific_information.rst: Fix unbalanced
+       parentheses and brackets.
+       * sem_prag.adb (pragma Obsolescent): Likewise.
+       * gnat_rm.texi, gnat_ugn.texi: Regenerate.
+
+2022-05-11  Marc Poulhiès  <poulhies@adacore.com>
+
+       * libgnat/s-rident.ads (Restriction_Id): Add
+       No_Local_Tagged_Types, update comment for adding new GNAT
+       specific restriction.
+       * restrict.ads (Implementation_Restriction): Add
+       No_Local_Tagged_Types.
+       * sem_ch3.adb (Analyze_Full_Type_Declaration): Add check for
+       tagged type at library level.
+       * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
+       Add No_Local_Tagged_Types description.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_ch4.adb (Analyze_User_Defined_Binary_Op): Use the base type
+       in the interpretation of the operator.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_case.adb (Free_Value_Sets): Fix style in body header box.
+       * sem_ch12.adb (Build_Subprogram_Wrappers): Likewise.
+       * sem_util.adb (Statically_Denotes_Entity): Likewise.
+
+2022-05-11  Etienne Servais  <servais@adacore.com>
+
+       * sem_ch3.adb (Constrain_Access): Call Desig_Subtype in each if
+       branch to avoid calling it twice.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_warn.adb (Find_Var): Detect all operators; replace
+       "condition" to "expression" in comments, because when this
+       routine is called recursively it no longer examines the
+       condition.
+       (Is_Suspicious_Function_Name): Reduce scope of a local variable
+       to avoid shadowing with a parameter of a nested
+       Substring_Present function.
+
+2022-05-11  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-aridou.adb (Double_Divide, Scaled_Divide): Add
+       intermediate assertions.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * libgnat/s-rident.ads (Implementation_Restriction): Remove
+       No_Dynamic_Attachment, No_Implementation_Attributes,
+       No_Implementation_Pragmas, No_Local_Protected_Objects,
+       No_Protected_Type_Allocators, No_Relative_Delay,
+       No_Requeue_Statements, No_Select_Statements,
+       No_Task_Termination, Pure_Barriers and Simple_Barriers; add
+       No_Dynamic_Sized_Objects,
+       No_Implicit_Protected_Object_Allocations,
+       No_Implicit_Task_Allocations, No_Task_At_Interrupt_Priority and
+       Static_Dispatch_Tables; sort alphabetically.
+       * restrict.ads (Restriction_Id): Change Pure_Barriers and
+       No_Task_Termination from GNAT to Ada restrictions.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_atag.adb, lib-util.ads, libgnat/g-decstr.adb,
+       libgnat/g-exptty.adb, libgnat/g-socpol.adb,
+       libgnat/s-strhas.adb: Fix headers.
+
+2022-05-11  Joao Azevedo  <azevedo@adacore.com>
+
+       * doc/gnat_ugn/platform_specific_information.rst: Add
+       glibc-locale-base-32bit as a dependency in SUSE distributions.
        * gnat_ugn.texi: Regenerate.
 
-2021-05-06  Eric Botcazou  <ebotcazou@adacore.com>
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_ugn/gnat_and_program_execution.rst,
+       doc/gnat_ugn/gnat_utility_programs.rst,
+       doc/gnat_ugn/inline_assembler.rst: Fix typos and formatting
+       glitches.
+       * gnat_ugn.texi: Regenerate.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Change
+       blocks from plain code to Ada.
+
+2022-05-11  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_ch5.adb (Expand_Assign_With_Target_Names): Bypass the temp
+       object approach in the case where the type of the LHS is
+       controlled or has controlled subcomponents (Needs_Finalization
+       is True), and use the procedure approach instead.
+
+2022-05-11  Bob Duff  <duff@adacore.com>
+
+       * sem_ch3.adb (Get_Discr_Value): Copy the result. Otherwise, the
+       "tree" can be malformed (a DAG, not a tree) because
+       Get_Discr_Value could be returning some subtree already attached
+       to the tree.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch5.adb (Analyze_Statements): Only clear Reachable flag on
+       proper label entities.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_characteristics.rst: Add
+       tabularcolums directive, as explained in documentation of Sphinx
+       and tabular LaTeX package.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_aspects.rst,
+       doc/gnat_rm/implementation_defined_pragmas.rst: Remove extra
+       whitespace.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_characteristics.rst: Remove
+       extra indent in continuation lines; indent both descriptions of
+       Max_Picture_Length.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst (Pragma
+       Eliminate): Fix markup.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-11  Johannes Kliemann  <kliemann@adacore.com>
+
+       * libgnat/g-sthcso.adb: Suppress warning about unneeded use type
+       clause.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch5.adb (Analyze_Statements): Only clear Reachable flag on
+       proper label entities.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst (Pragma
+       Ada_2022): Copy description from pragma Ada 2012 and adapt.
+       * doc/gnat_ugn/the_gnat_compilation_model.rst (Configuration
+       Pragmas): List pragma Ada 2022.
+       * gnat_rm.texi, gnat_ugn.texi: Regenerate.
+
+2022-05-11  Steve Baird  <baird@adacore.com>
+
+       * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Replace
+       the existing check for an address specification for an object of
+       a class-wide type with a more general check which rejects either
+       the class-wide case or the case where the FE would (if the
+       address specification were accepted) build a malformed
+       tree (specifically, an object renaming declaration with a
+       specified address). In the case where the check fails, reject
+       the construct at compile time instead of generating an
+       unconditional raise of Program_Error.
+       * doc/gnat_rm/representation_clauses_and_pragmas.rst: Update
+       documentation to reflect these changes.
+       * gnat_rm.texi: Regenerate.
+
+2022-05-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * gen_il-gen-gen_entities.adb (Reachable): Move from
+       Root_Entity_Type to E_Label.
+
+2022-05-11  Alexandre Oliva  <oliva@adacore.com>
+
+       * exp_ch3.adb (Expand_N_Object_Declaration): Guard
+       Set_Is_Known_Valid with Safe_To_Capture_Value.
+
+2022-05-11  Bob Duff  <duff@adacore.com>
+
+       * repinfo.adb (List_Object_Info): Do not try to print values
+       that have not been computed (and so are No_Uint).
+       (Rep_Not_Constant): Reverse sense and change name to
+       Compile_Time_Known_Rep. This makes the code at call sites a
+       little more readable. Simplify code to a single return
+       statement.
+
+2022-05-10  Martin Liska  <mliska@suse.cz>
+
+       * gcc-interface/decl.cc (compare_field_bitpos): Use void *
+       instead PTR.
+       * gcc-interface/utils2.cc (compare_elmt_bitpos): Likewise.
+
+2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fe.h (Is_Expression_Function): Declare.
+       * sem_util.ads (Is_Expression_Function): Add warning line.
+
+2022-05-10  Alexandre Oliva  <oliva@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Valid>:
+       Drop redundant range check for nonstandard booleans.
+
+2022-05-10  Alexandre Oliva  <oliva@adacore.com>
+
+       * exp_util.adb (Adjust_Result_Type): Leave result in
+       Standard.Boolean if it's going to be converted to another
+       boolean type.
+       * exp_ch4.adb (Expand_N_Type_Conversion): When optimizing,
+       convert to nonstandard booleans with an if_expression with
+       boolean literals.
+
+2022-05-10  Alexandre Oliva  <oliva@adacore.com>
+
+       * exp_ch4.adb (Expand_N_If_Expression): Call Adjust_Condition to
+       handle non-standard booleans.
+
+2022-05-10  Justin Squirek  <squirek@adacore.com>
+
+       * sem_ch8.adb (Use_One_Type): Remove code in charge of setting
+       Current_Use_Clause when Id is known to be redundant, and modify
+       the printing of errors associated with redundant use type
+       clauses so that line number gets included in more cases.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_warn.adb (Check_Unset_Reference): Use variant of
+       Earlier_In_Extended_Unit that calls Sloc internally.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * par-ch10.adb, scng.adb, sem_res.adb, sinfo-utils.adb,
+       treepr.adb: Simplify calculations with Source_Ptr and Loc
+       values.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_res.adb (Resolve_Expression_With_Actions): Fix style in
+       nested routines.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * atree.adb, exp_ch6.adb, exp_ch9.adb, ghost.adb, sem_ch3.adb,
+       sem_ch4.adb, sem_res.adb, sem_util.adb: Use
+       Is_Rewrite_Substitution where possible.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch11.adb, exp_ch5.adb, exp_prag.adb, gnat_cuda.adb,
+       sem_ch12.adb, sem_ch3.adb, sem_ch6.adb, sem_util.adb,
+       treepr.adb: Replace /= and = operators with No and Present,
+       respectively.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_warn.adb (Within_Postcondition): Guard against search
+       going too far.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_warn.adb (Check_Unset_Reference): The early test was only
+       saving time of calls to Original_Node, Comes_From_Source and
+       Nkind, which are all quick and cheap.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch5.adb (Check_Unreachable_Code): Remove inner declare
+       block; refill code and comments.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Replace
+       First_Entity/Next_Entity with First_Formal/Next_Formal; rename
+       E1/E2 to F1/F2.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_res.adb (Resolve_Declare_Expression): Check expression for
+       references to unset objects.
+       (Resolve_Qualified_Expression): Likewise.
+       * sem_warn.adb (Check_Unset_Reference): Remove handling of
+       declare and qualified expressions; clarify comment for type
+       conversions.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_res.adb (Resolve_Case_Expression): Check alternative
+       expressions for references to unset objects.
+       (Resolve_If_Expression): Check condition, then and else
+       expressions for references to unset objects.
+
+2022-05-10  Kévin Le Gouguec  <legouguec@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_attributes.rst,
+       doc/gnat_ugn/the_gnat_compilation_model.rst: Fix typos.
+       * gnat_rm.texi, gnat_ugn.texi: Regenerate.
+
+2022-05-10  Etienne Servais  <servais@adacore.com>
+
+       * sem_ch13.adb (Is_Predicate_Static): Fix typo in comment.
+
+2022-05-10  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-valuei.adb: Fix indentation.
+       * libgnat/s-valuei.ads: Same.
+
+2022-05-10  Claire Dross  <dross@adacore.com>
+
+       * snames.ads-tmpl: Add "Structural" as a name.
+       * sem_prag.adb: (Analyze_Pragma): Accept modifier "Structural"
+       in pragmas Loop_Variant and Subprogram_Variant. Check that items
+       associated to Structural occur alone in the pragma associations.
+       (Analyze_Subprogram_Variant_In_Decl_Part): Idem.
+       * exp_prag.adb (Expand_Pragma_Loop_Variant): Discard structural
+       variants.
+       (Expand_Pragma_Subprogram_Variant): Idem.
+
+2022-05-10  Claire Dross  <dross@adacore.com>
+
+       * libgnat/s-valint.ads: Add SPARK_Mode and pragma to ignore
+       assertions in instance and add additional ghost parameters to
+       the instance of Value_I.
+       * libgnat/s-vallli.ads: Idem.
+       * libgnat/s-valllli.ads: Idem.
+       * libgnat/s-valuei.ads, libgnat/s-valuei.adb: New generic
+       parameters for ghost functions from System.Valueu. Add
+       functional contracts.
+
+2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_res.adb (Resolve_Eqyality_Op): Remove obsolete code.
+       (Resolve_Op_Not): Likewise.
+       * sem_type.adb (Disambiguate): Add missing test for RM 8.4(10).
+       * libgnat/s-dwalin.adb (Enable_Cache): Fix ambiguity.
+       (Symbolic_Address): Likewise.
+
+2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_eval.adb (Eval_Integer_Literal): Fix oversight in entry test.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_aggr.adb (Expand_N_Aggregate): Replace UI_To_Int with
+       UI_To_CC; replace magic literals with high-level routines that
+       recognise wide and wide wide characters; reorder if-then-elsif
+       condition, because we don't have a routine to detect wide wide
+       characters.
+
+2022-05-10  Etienne Servais  <servais@adacore.com>
+
+       * scng.adb (Nlit): Error on big UI_Scale.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_util.adb (Build_Task_Array_Image): Declare expanded
+       objects as constants.
+       (Build_Task_Image_Prefix): Likewise.
+       (Build_Task_Record_Image): Likewise.
+
+2022-05-10  Marc Poulhiès  <poulhies@adacore.com>
+
+       * checks.adb (Determine_Range): Fix range refining.
+
+2022-05-10  Steve Baird  <baird@adacore.com>
+
+       * sem_util.adb (Get_Actual_Subtype): If a new subtype is built,
+       do not freeze it if Expander_Active is False. The idea here is
+       to avoid generating an unwanted Freeze_Node for a subtype that
+       has been conjured up solely for purposes of preanalysis.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_util.adb (Build_Task_Array_Image): Fix style in the
+       structure of generated code; add Pref'Length as the component of
+       the Sum initialization expression.
+
+2022-05-10  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Use
+       Get_Char_Code.
+       * exp_util.adb (Build_Task_Array_Image): Simplify conversion to
+       Char_Code.
+       (Build_Task_Image_Prefix): Likewise.
+       (Build_Task_Record_Image): Likewise.
+       * cstand.adb (Create_Standard): Use UI_From_Int instead of
+       UI_From_CC.
+       * exp_ch11.adb (Expand_N_Exception_Declaration): Likewise.
+       * sem_res.adb (Patch_Up_Value): Likewise.
+       * stringt.adb (Write_String_Table_Entry): Use Get_Char_Code.
+
+2022-05-09  Yannick Moy  <moy@adacore.com>
+
+       * sem_util.adb (Bad_Predicated_Subtype_Use): Add continuation
+       message.
+
+2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
+
+       * uintp.adb (UI_To_CC): Guard against illegal inputs; reuse
+       UI_To_Int.
+
+2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
+
+       * par-prag.adb (Prag): Simplify conversion of character codes.
+       * sem_case.adb (Choice_Image): Likewise.
+       (Lit_Of): Likewise.
+
+2022-05-09  Justin Squirek  <squirek@adacore.com>
+
+       * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Tag>:
+       Deal specifically wth class-wide equivalent types without a
+       parent.
+       * exp_util.adb (Build_Allocate_Deallocate_Proc): Extract
+       allocator node for calculation of alignment actual and modify
+       alignment for allocators of class-wide types with associated
+       expressions.
+       (Make_CW_Equivalent_Type): Handle interface types differently
+       when generating the equivalent record.
+       * sem_aux.adb (First_Tag_Component): Accept class-wide
+       equivalent types too.
+
+2022-05-09  Etienne Servais  <servais@adacore.com>
+
+       * repinfo.adb (List_Name): Rework termination condition.
+
+2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
+
+       * bindgen.adb, errout.adb, exp_unst.adb, gnatchop.adb,
+       libgnat/a-ngcefu.adb, libgnat/a-strunb.adb,
+       libgnat/a-stwiun.adb, libgnat/a-stzunb.adb,
+       libgnat/a-wtedit.adb, libgnat/g-debpoo.adb, osint.adb,
+       sigtramp-vxworks.c, uintp.adb: Remove extra whitespace around +,
+       -, *, / and **.
+
+2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
+
+       * libgnat/s-expmod.adb: Remove CodePeer annotation for pragma
+       Loop_Variant.
+
+2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_util.ads (In_Statement_Condition_With_Actions): Renamed
+       from In_While_Loop_Condition; move to fit the alphabetic order.
+       * sem_util.adb (In_Statement_Condition_With_Actions): Detect
+       Elsif condition; stop search on other statements; prevent search
+       from going too far; move to fit the alphabetic order.
+       * sem_res.adb (Resolve_Call): Adapt caller.
+
+2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
+
+       * inline.adb (Build_Body_To_Inline): Remove redundant guards.
+       * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise.
+
+2022-05-09  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_util.adb (Is_OK_Variable_For_Out_Formal): Remove test on
+       Comes_From_Source in the condition dealing with the expression
+       of an N_Unchecked_Type_Conversion node.
+
+2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_aggr.adb, exp_ch3.adb, exp_util.adb, freeze.adb,
+       gnatfind.adb, gnatlink.adb, gnatxref.adb, gprep.adb,
+       libgnat/a-cfhama.adb, libgnat/g-alleve.adb, sem_ch12.adb,
+       sem_ch13.adb, xr_tabls.adb: Fix style labels.
+
+2022-05-09  Justin Squirek  <squirek@adacore.com>
+
+       * err_vars.ads: Add new error message names and nodes.
+       * erroutc.adb (Set_Msg_Insertion_Name,
+       Set_Msg_Insertion_Name_Literal): Likewise.
+       * errout.adb (Set_Msg_Insertion_Node): Likewise.
+       * errout.ads: Likewise.
+       * exp_disp.adb (Check_Premature_Freezing): Modify setting of
+       Error_Msg_Node_2 to occur directly before Error_Msg call where
+       applicable.
+       * sem_ch8.adb (Error_Missing_With_Of_Known_Unit): Added to
+       handle the printing of full package names of known units.
+       (Undefined, Find_Expanded_Name): Replace error printing with
+       call to Error_Missing_With_Of_Known_Unit.
+
+2022-05-09  Yannick Moy  <moy@adacore.com>
+
+       * exp_ch4.adb (Expand_Allocator_Expression): Set Error_Msg_Warn
+       correctly.
+
+2022-05-09  Steve Baird  <baird@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_ch13.adb (Replace_Type_Ref): In the case of an identifier
+       that names a component of the type, simplify the test to decide
+       whether to build a prefix for it (the prefix denotes the current
+       instance of the enclosing type): if the identifier doesn't
+       already have a prefix, then give it one. This isn't quite right
+       in the corner case of a quantified expression or some other such
+       expression that declares an object with the same name as a
+       component, but it is still an improvement.
 
-2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
+2022-05-09  Ed Schonberg  <schonberg@adacore.com>
 
-       * lib-writ.adb, osint.adb, osint.ads: Cleanup.
+       * exp_attr.adb (Compile_Stream_Body_In_Scope): Do not install
+       package if array type and element type come from the same
+       package, and the original array type is private.
 
-2021-05-06  Piotr Trojanek  <trojanek@adacore.com>
+2022-05-09  Eric Botcazou  <ebotcazou@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.
+       * exp_ch4.adb (Handle_Changed_Representation): Simplify and fix
+       thinko in the loop building the constraints for discriminants.
+       * exp_ch5.adb (Make_Component_List_Assign): Try also to extract
+       discriminant values for a derived type.
 
-2021-05-06  Ed Schonberg  <schonberg@adacore.com>
+2022-05-09  Ed Schonberg  <schonberg@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.
+       * sem_res.adb (Resolve_Declare_Expression): Traverse the
+       expression to replace references to local variables that occur
+       within declarations of the declare_expression; fix typos in
+       comments.
 
-2021-05-06  Arnaud Charlet  <charlet@adacore.com>
+2022-05-09  Ed Schonberg  <schonberg@adacore.com>
 
-       * einfo.ads, exp_prag.adb, exp_util.adb: Fix typos.
+       * sem_ch4.adb (Operator_Check): Fix condition.
 
-2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+2022-05-09  Piotr Trojanek  <trojanek@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.
+       * doc/gnat_rm/implementation_defined_pragmas.rst
+       (Abstract_State, Async_Readers, Async_Writers,
+       Constant_After_Elaboration, Effective_Reads, Effective_Writes,
+       Extensions_Visible, Ghost, No_Caching, Volatile_Function): Only
+       static Boolean expressions are allowed.
+       * gnat_rm.texi: Regenerate.
 
-2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_prag.adb (Expand_Pragma_Loop_Variant,
+       Expand_Pragma_Subprogram_Variant): Adapt call via
+       Process_Variant to Make_Variant_Comparison.
+       * exp_util.adb (Make_Variant_Comparison): Compare Big_Integer
+       expressions with a function call and not an operator.
+       * exp_util.ads (Make_Variant_Comparison): Add type parameter,
+       which is needed because the Curr_Val and Old_Val expressions
+       might not be yet decorated.
+       * rtsfind.ads: (RTU_Id): Add support for Big_Integers and
+       Big_Integers_Ghost.
+       (RE_Id): Add support for Big_Integer and its ghost variant.
+       (RE_Unit_Table): Add mapping from Big_Integer to Big_Integers;
+       same for the ghost variants.
+       * rtsfind.adb (Get_Unit_Name): Add support for Big_Numbers.
+       * sem_prag.adb (Analyze_Pragma): Allow Big_Integer in pragma
+       Loop_Variant.
+       (Analyze_Variant): Allow Big_Integer in pragma
+       Subprogram_Variant.
+
+2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_ch3.ads, sem_ch3.adb (Preanalyze_Assert_Expression): Add a
+       variant that doesn't force preanalysis to yield a specific type.
+
+2022-05-09  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * einfo.ads (Access Kinds): Reorder and beef up.
+       * sem.adb (Analyze): Call Analyze_Comparison_Equality_Op for all
+       comparison and equality operators.
+       * sem_ch4.ads (Analyze_Comparison_Op): Delete.
+       (Analyze_Equality_Op): Likewise.
+       (Analyze_Comparison_Equality_Op): Declare.
+       (Ambiguous_Operands): Likewise.
+       * sem_ch4.adb (Ambiguous_Operands): Remove declaration.
+       (Defined_In_Scope): Delete.
+       (Find_Comparison_Types): Merge into...
+       (Find_Equality_Types): Merge into...
+       (Find_Comparison_Equality_Types): ...this.  Make fully symmetrical.
+       (Analyze_Arithmetic_Op): Minor consistency tweaks.
+       (Analyze_Comparison_Op): Merge into...
+       (Analyze_Equality_Op): Merge into...
+       (Analyze_Comparison_Equality_Op): ...this.  Make fully symmetrical.
+       (Analyze_Logical_Op): Minor consistency tweaks.
+       (Analyze_Membership_Op): Make fully symmetrical.
+       (Analyze_One_Call): Minor comment tweak.
+       (Analyze_Operator_Call): Call Find_Comparison_Equality_Types.
+       (Analyze_User_Defined_Binary_Op): Make fully symmetrical.
+       (Check_Arithmetic_Pair.Specific_Type): Delete.
+       (Diagnose_Call): Add special handling for "+" operator.
+       (Operator_Check): Call Analyze_Comparison_Equality_Op.
+       * sem_ch8.adb (Has_Implicit_Operator): Add Is_Type guard for boolean
+       operators, use Valid_Comparison_Arg and Valid_Equality_Arg for resp.
+       comparison and equality operators.
+       * sem_res.adb (Check_For_Visible_Operator): Call Is_Visible_Operator
+       (Make_Call_Into_Operator): Use Preserve_Comes_From_Source.
+       (Resolve_Actuals): Deal specifically with Any_Type actuals for user-
+       defined comparison and equality operators.
+       (Resolve_Call): Minor tweaks.
+       (Resolve_Comparison_Op): Tidy up and give error for ambiguity.
+       (Resolve_Equality_Op): Likewise, as well as other errors.
+       (Rewrite_Renamed_Operator): Simplify.
+       * sem_type.ads (Is_Invisible_Operator): Delete.
+       (Is_Visible_Operator): Declare.
+       (Has_Compatible_Type): Remove For_Comparison parameter.
+       (Specific_Type): Declare.
+       (Valid_Equality_Arg): Likewise.
+       * sem_type.adb (Specific_Type): Remove declaration.
+       (Add_One_Interp): Call Is_Visible_Operator for the visibility test.
+       (Remove_Conversions): Rename into...
+       (Remove_Conversions_And_Abstract_Operations): ...this.  Do not apply
+       numeric-type treatment to Any_Type.  Expand the special handling for
+       abstract interpretations to second operand.  Remove obsolete code.
+       (Disambiguate): Adjust to above renaming.  Tweak to hidden case and
+       call Remove_Conversions_And_Abstract_Operations for operators too.
+       (Entity_Matches_Spec): Minor tweak.
+       (Find_Unique_Type): Simplify and deal with user-defined literals.
+       (Has_Compatible_Type): Remove For_Comparison parameter and adjust.
+       Call the Is_User_Defined_Literal predicate and remove call to
+       the Is_Invisible_Operator predicate.
+       (Is_Invisible_Operator): Delete.
+       (Is_Visible_Operator): New function.
+       (Operator_Matches_Spec): Use Valid_Equality_Arg predicate.
+       (Specific_Type): Tidy up, make fully symmetrical and deal with
+       private views the same way as Covers.
+       (Valid_Comparison_Arg): Return true for Any_Composite/Any_String.
+       (Valid_Equality_Arg): New function.
+       * sem_util.ads (Is_User_Defined_Literal): Declare.
+       * sem_util.adb (Is_User_Defined_Literal): New function.
+
+2022-05-09  Bob Duff  <duff@adacore.com>
+
+       * lib-xref.adb, sem_util.adb: Change wording of warning messages
+       to use "aspect".
+       * sem_prag.adb: Use Fix_Error to change wording of warnings.
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Minor: fix
+       cut&paste error.
+       * gnat_rm.texi: Regenerate.
 
-       * 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.
+2022-05-09  Doug Rupp  <rupp@adacore.com>
 
-2021-05-05  Justin Squirek  <squirek@adacore.com>
+       * init.c [vxworks] (CLEAR_EXCEPTION_COUNT): New macro.
+       (__gnat_clear_exception_count): Remove.
+       (__gnat_map_signal): Call CLEAR_EXCEPTION_COUNT().
 
-       * exp_ch6.adb (Expand_Call_Helper): Add condition to check for
-       expanded actuals and remove dead code.
+2022-05-09  Fedor Rybin  <frybin@adacore.com>
 
-2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+       * doc/gnat_ugn/gnat_utility_programs.rst: Remove gnattest
+       section.
 
-       * exp_ch4.adb (Has_Unconstrained_UU_Component): Rewrite to
-       follow the Ada RM grammar.
+2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+       * sem_attr.adb (Analyze_Attribute): Remove calls to Analyze for
+       attributes Identity, Priority, Ref, Restriction_Set, To_Address
+       and for tasking-related attributes Callable, Terminated and
+       Storage_Size.
 
-       * 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.
+2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+       * sem_attr.adb (Analyze_Attribute): Don't call Set_Etype for
+       Bit_Order attribute.
 
-       * exp_ch4.adb (Component_Is_Unconstrained_UU): Detect both
-       qualified and unqualified names of unchecked union components.
+2022-05-09  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+       * exp_ch5.adb (Update_Choice_Index): Simplify condition.
+       * sem_ch8.adb (Attribute_Renaming): Likewise.
 
-       * 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.
+2022-05-09  Dmitriy Anisimkov  <anisimko@adacore.com>
 
-2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+       * adaint.c (__gnat_kill): Remove close parameter.
+       (__gnat_killprocesstree): Do not provide close parameter on call
+       to __gnat_kill.
+       * libgnat/g-expect.adb (Kill): Remove Close parameter.
+       (Close): Do not provide Close parameter on call to Kill.
+       (Send_Signal): Do not provide Close parameter on call to Kill.
+       * libgnat/s-os_lib.adb (Kill): Do not provide close parameter on
+       call to __gnat_kill.
 
-       * exp_ch4.adb (Apply_Accessibility_Check): Skip a statically
-       true condition in expanded raise statement.
+2022-05-09  Dmitriy Anisimkov  <anisimko@adacore.com>
 
-2021-05-05  Bob Duff  <duff@adacore.com>
+       * libgnat/g-expect.adb (Close): Call Kill before Close_Input.
 
-       * libgnat/s-os_lib.adb (Missed_Drive_Letter): Simplify the code.
+2022-04-29  Martin Liska  <mliska@suse.cz>
 
-2021-05-05  Ed Schonberg  <schonberg@adacore.com>
+       * gnatvsn.ads: Bump Library_Version to 13.
 
-       * 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.
+2022-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
-2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
+       * tracebak.c: Add support for ARM RTEMS. Add support for RTEMS to PPC
+       ELF.  Add support for RTEMS to SPARC.  Merge aarch64 support of Linux
+       and RTEMS.
 
-       * 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.
+2022-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
 
-2021-05-05  Ghjuvan Lacambre  <lacambre@adacore.com>
+       PR ada/104027
+       * gnat1drv.adb: Remove the goto End_Of_Program.
 
-       * exp_ch7.adb (Expand_N_Package_Body): Add CUDA init call.
-       * sem_ch7.adb (Analyze_Package_Body_Helper): Remove CUDA init
-       call.
+2022-03-24  Pascal Obry  <obry@adacore.com>
 
-2021-05-05  Ghjuvan Lacambre  <lacambre@adacore.com>
+       PR ada/104767
+       * libgnat/g-sercom__mingw.adb (Close): Reset port handle to -1.
+       * libgnat/g-sercom__linux.adb (Close): Likewise.
 
-       * par-ch5.adb (P_Condition): Check if expression is declare
-       expression.
+2022-03-10  Richard Biener  <rguenther@suse.de>
 
-2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+       PR ada/104861
+       * gcc-interface/Makefile.in (target_noncanonical): Substitute.
+       (OSCONS_CPP): Pass target_noncanonical as TARGET.
 
-       * make.adb (Make): Use GNAT.Ctrl_C.Install_Handler instead of a
-       custom imported procedure.
+2022-02-13  Maciej W. Rozycki  <macro@orcam.me.uk>
 
-2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>
+       PR ada/98724
+       PR ada/97504
+       * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <alpha*-*-linux*>: Use
+       wraplf version of Aux_Long_Long_Float.
 
-       * 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.
+2022-01-31  Pierre-Marie de Rodat  <derodat@adacore.com>
 
-2021-05-05  Piotr Trojanek  <trojanek@adacore.com>
+       * doc/share/conf.py: Remove spurious call to ".decode()".
 
-       * 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.
+2022-01-31  Arnaud Charlet  <charlet@adacore.com>
 
-2021-05-05  Ghjuvan Lacambre  <lacambre@adacore.com>
+       PR ada/104027
+       * gnat1drv.adb (Gnat1drv): Only call Exit_Program when not
+       generating code, otherwise instead go to End_Of_Program.
 
-       * exp_util.adb (Is_Possibly_Unaligned_Object): Remove commented
-       code.
+2022-01-28  Eric Botcazou  <ebotcazou@adacore.com>
 
-2021-05-05  Ed Schonberg  <schonberg@adacore.com>
+       PR ada/104258
+       * exp_ch4.adb (Narrow_Large_Operation): Also copy the entity, if
+       any, when rewriting the operator node.
 
-       * 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.
+2022-01-19  H.J. Lu  <hjl.tools@gmail.com>
 
-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.
+       PR ada/103538
+       * gcc-interface/Makefile.in (target_cpu): Set to x32 for
+       x86_64-linux-gnux32.
+
+2022-01-19  H.J. Lu  <hjl.tools@gmail.com>
 
-2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+       PR ada/103538
+       * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Add
+       $(TRASYM_DWARF_UNIX_PAIRS),
+       s-tsmona.adb<libgnat/s-tsmona__linux.adb,
+       $(GNATRTL_128BIT_PAIRS).
+       (EXTRA_GNATRTL_NONTASKING_OBJS): Add $(TRASYM_DWARF_UNIX_OBJS)
+       and $(GNATRTL_128BIT_OBJS).
 
-       * pprint.adb (To_Mixed): Removed.
+2022-01-18  Martin Liska  <mliska@suse.cz>
 
-2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+       * adaint.c: Revert filename changes in comments.
+       * ctrl_c.c (dummy_handler): Likewise.
+       * gsocket.h: Likewise.
+       * init.c (__gnat_error_handler): Likewise.
+       * libgnarl/s-intman.ads: Likewise.
+       * libgnarl/s-osinte__android.ads: Likewise.
+       * libgnarl/s-osinte__darwin.ads: Likewise.
+       * libgnarl/s-osinte__hpux.ads: Likewise.
+       * libgnarl/s-osinte__linux.ads: Likewise.
+       * libgnarl/s-osinte__qnx.ads: Likewise.
+       * libgnarl/s-taskin.ads: Likewise.
+       * rtfinal.c: Likewise.
 
-       * pprint.adb (List_Name_Count): Change type from Integer to
-       Natural.
+2022-01-18  Martin Liska  <mliska@suse.cz>
+
+       * Make-generated.in: Revert renaming changes.
+       * Makefile.rtl: Likewise.
+       * adadecode.cc: Moved to...
+       * adadecode.c: ...here.
+       * affinity.cc: Moved to...
+       * affinity.c: ...here.
+       * argv-lynxos178-raven-cert.cc: Moved to...
+       * argv-lynxos178-raven-cert.c: ...here.
+       * argv.cc: Moved to...
+       * argv.c: ...here.
+       * aux-io.cc: Moved to...
+       * aux-io.c: ...here.
+       * cio.cc: Moved to...
+       * cio.c: ...here.
+       * cstreams.cc: Moved to...
+       * cstreams.c: ...here.
+       * env.cc: Moved to...
+       * env.c: ...here.
+       * exit.cc: Moved to...
+       * exit.c: ...here.
+       * expect.cc: Moved to...
+       * expect.c: ...here.
+       * final.cc: Moved to...
+       * final.c: ...here.
+       * gcc-interface/Makefile.in:
+       * init.cc: Moved to...
+       * init.c: ...here.
+       * initialize.cc: Moved to...
+       * initialize.c: ...here.
+       * libgnarl/thread.cc: Moved to...
+       * libgnarl/thread.c: ...here.
+       * link.cc: Moved to...
+       * link.c: ...here.
+       * locales.cc: Moved to...
+       * locales.c: ...here.
+       * mkdir.cc: Moved to...
+       * mkdir.c: ...here.
+       * raise.cc: Moved to...
+       * raise.c: ...here.
+       * rtfinal.cc: Moved to...
+       * rtfinal.c: ...here.
+       * rtinit.cc: Moved to...
+       * rtinit.c: ...here.
+       * s-oscons-tmplt.c (CND): Revert renaming changes.
+       * seh_init.cc: Moved to...
+       * seh_init.c: ...here.
+       * sigtramp-armdroid.cc: Moved to...
+       * sigtramp-armdroid.c: ...here.
+       * sigtramp-ios.cc: Moved to...
+       * sigtramp-ios.c: ...here.
+       * sigtramp-qnx.cc: Moved to...
+       * sigtramp-qnx.c: ...here.
+       * sigtramp-vxworks.cc: Moved to...
+       * sigtramp-vxworks.c: ...here.
+       * socket.cc: Moved to...
+       * socket.c: ...here.
+       * tracebak.cc: Moved to...
+       * tracebak.c: ...here.
+       * version.cc: Moved to...
+       * version.c: ...here.
+       * vx_stack_info.cc: Moved to...
+       * vx_stack_info.c: ...here.
+
+2022-01-17  Martin Liska  <mliska@suse.cz>
+
+       * Makefile.rtl: Rename .c names to .cc.
+       * gcc-interface/Make-lang.in: Likewise.
+       * gcc-interface/Makefile.in: Likewise.
+
+2022-01-17  Martin Liska  <mliska@suse.cz>
+
+       * Make-generated.in: Rename .c names to .cc.
+       * adaint.c: Likewise.
+       * ctrl_c.c (dummy_handler): Likewise.
+       * gcc-interface/Makefile.in: Likewise.
+       * gcc-interface/config-lang.in: Likewise.
+       * gcc-interface/decl.cc (concat_name): Likewise.
+       (init_gnat_decl): Likewise.
+       * gcc-interface/gigi.h (concat_name): Likewise.
+       (init_gnat_utils): Likewise.
+       (build_call_raise_range): Likewise.
+       (gnat_mark_addressable): Likewise.
+       (gnat_protect_expr): Likewise.
+       (gnat_rewrite_reference): Likewise.
+       * gcc-interface/lang-specs.h (ADA_DUMPS_OPTIONS): Likewise.
+       * gcc-interface/utils.cc (GTY): Likewise.
+       (add_deferred_type_context): Likewise.
+       (init_gnat_utils): Likewise.
+       * gcc-interface/utils2.cc (gnat_stable_expr_p): Likewise.
+       (gnat_protect_expr): Likewise.
+       (gnat_stabilize_reference_1): Likewise.
+       (gnat_rewrite_reference): Likewise.
+       * gsocket.h: Likewise.
+       * init.cc (__gnat_error_handler): Likewise.
+       * libgnarl/s-intman.ads: Likewise.
+       * libgnarl/s-osinte__android.ads: Likewise.
+       * libgnarl/s-osinte__darwin.ads: Likewise.
+       * libgnarl/s-osinte__hpux.ads: Likewise.
+       * libgnarl/s-osinte__linux.ads: Likewise.
+       * libgnarl/s-osinte__qnx.ads: Likewise.
+       * libgnarl/s-taskin.ads: Likewise.
+       * rtfinal.cc: Likewise.
+       * s-oscons-tmplt.c (CND): Likewise.
+       * set_targ.ads: Likewise.
 
-2021-05-04  Yannick Moy  <moy@adacore.com>
+2022-01-17  Martin Liska  <mliska@suse.cz>
+
+       * adadecode.c: Moved to...
+       * adadecode.cc: ...here.
+       * affinity.c: Moved to...
+       * affinity.cc: ...here.
+       * argv-lynxos178-raven-cert.c: Moved to...
+       * argv-lynxos178-raven-cert.cc: ...here.
+       * argv.c: Moved to...
+       * argv.cc: ...here.
+       * aux-io.c: Moved to...
+       * aux-io.cc: ...here.
+       * cio.c: Moved to...
+       * cio.cc: ...here.
+       * cstreams.c: Moved to...
+       * cstreams.cc: ...here.
+       * env.c: Moved to...
+       * env.cc: ...here.
+       * exit.c: Moved to...
+       * exit.cc: ...here.
+       * expect.c: Moved to...
+       * expect.cc: ...here.
+       * final.c: Moved to...
+       * final.cc: ...here.
+       * gcc-interface/cuintp.c: Moved to...
+       * gcc-interface/cuintp.cc: ...here.
+       * gcc-interface/decl.c: Moved to...
+       * gcc-interface/decl.cc: ...here.
+       * gcc-interface/misc.c: Moved to...
+       * gcc-interface/misc.cc: ...here.
+       * gcc-interface/targtyps.c: Moved to...
+       * gcc-interface/targtyps.cc: ...here.
+       * gcc-interface/trans.c: Moved to...
+       * gcc-interface/trans.cc: ...here.
+       * gcc-interface/utils.c: Moved to...
+       * gcc-interface/utils.cc: ...here.
+       * gcc-interface/utils2.c: Moved to...
+       * gcc-interface/utils2.cc: ...here.
+       * init.c: Moved to...
+       * init.cc: ...here.
+       * initialize.c: Moved to...
+       * initialize.cc: ...here.
+       * libgnarl/thread.c: Moved to...
+       * libgnarl/thread.cc: ...here.
+       * link.c: Moved to...
+       * link.cc: ...here.
+       * locales.c: Moved to...
+       * locales.cc: ...here.
+       * mkdir.c: Moved to...
+       * mkdir.cc: ...here.
+       * raise.c: Moved to...
+       * raise.cc: ...here.
+       * rtfinal.c: Moved to...
+       * rtfinal.cc: ...here.
+       * rtinit.c: Moved to...
+       * rtinit.cc: ...here.
+       * seh_init.c: Moved to...
+       * seh_init.cc: ...here.
+       * sigtramp-armdroid.c: Moved to...
+       * sigtramp-armdroid.cc: ...here.
+       * sigtramp-ios.c: Moved to...
+       * sigtramp-ios.cc: ...here.
+       * sigtramp-qnx.c: Moved to...
+       * sigtramp-qnx.cc: ...here.
+       * sigtramp-vxworks.c: Moved to...
+       * sigtramp-vxworks.cc: ...here.
+       * socket.c: Moved to...
+       * socket.cc: ...here.
+       * tracebak.c: Moved to...
+       * tracebak.cc: ...here.
+       * version.c: Moved to...
+       * version.cc: ...here.
+       * vx_stack_info.c: Moved to...
+       * vx_stack_info.cc: ...here.
+
+2022-01-14  Andrew Pinski  <apinski@marvell.com>
+
+       PR ada/104027
+       * gnat1drv.adb (Gnat1drv): After Back_End.Gen_Or_Update_Object_File
+       goto End_Of_Program.
+
+2022-01-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/utils2.c (build_binary_op) <EQ_EXPR>: Relax a
+       little the assertion on designated types of pointer types.
+
+2022-01-11  Justin Squirek  <squirek@adacore.com>
+
+       * sem_ch8.adb (Nvis_Messages): Add generic instance name to
+       error message.
 
-       * pprint.adb (Expression_Image): Special case for
-       expression-with-actions.
+2022-01-11  Etienne Servais  <servais@adacore.com>
 
-2021-05-04  Bob Duff  <duff@adacore.com>
+       * par-ch6.adb (Scan_Body_Or_Expression_Function): Accept left
+       bracket as token to open an expression function.
 
-       * exp_ch4.adb (Expand_Concatenate): Remove the non-optimization.
+2022-01-11  Justin Squirek  <squirek@adacore.com>
 
-2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+       * sem_warn.adb (Check_References): Add call to Has_Task instead
+       of checking component type.
 
-       * 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.
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+       * exp_util.ads (Insert_Declaration): Remove spec.
+       * exp_util.adb (Insert_Declaration): Remove body.
 
-       * sem_ch12.adb (Check_Abstract_Primitives): Match First_Formal
-       with Next_Formal.
-       * sem_ch6.adb (Is_Non_Overriding_Operation): Likewise.
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+       * exp_ch4.adb (Expand_N_Expression_With_Actions): Avoid
+       redundant check.
+       * exp_ch5.adb (Expand_N_If_Statement): Likewise.
+       * exp_ch7.adb (Process_Declarations): Likewise.
+       * sem_elab.adb (Freeze_Node_Location): Likewise.
+       * exp_util.adb (Insert_Actions): Likewise.
+       (Is_OK_PF_Pragma): Likewise.
+       (Requires_Cleanup_Actions): Remove early exit; ordinary
+       processing path will similarly do nothing.
 
-       * sem_prag.adb (Collect_Global_Item): Iterate directly over
-       formals.
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-05-04  Piotr Trojanek  <trojanek@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.
-
-2021-05-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.
-
-2021-05-04  Yannick Moy  <moy@adacore.com>
-
-       * erroutc.adb (Matches): Move spec...
-       * erroutc.ads (Matches): ...here.
-
-2021-05-04  Yannick Moy  <moy@adacore.com>
-
-       * gnat1drv.adb (Adjust_Global_Switches): Force error marker in
-       GNATprove mode.
-
-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.
+       * snames.ads-tmpl: Restore Name_Rpc.
 
-2021-05-04  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
 
-       * errout.adb (Error_Msg_Internal): Add assertion to prevent
-       style mistakes reappearing in the future.
+       * sem_ch4.adb (Analyze_Allocator): Move DECLARE block inside IF
+       statement; refill code and comments.
 
-2021-05-04  Javier Miranda  <miranda@adacore.com>
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
 
-       * exp_ch4.adb (Tagged_Membership): Remove wrong condition that
-       is not consistent with the documentation of this subprogram.
+       * sem_ch4.adb (Analyze_Allocator): Fix comment.
+       * sem_eval.ads (Compile-Time Known Values): Likewise.
 
-2021-05-04  Yannick Moy  <moy@adacore.com>
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_res.adb (Valid_Conversion): Make message a continuation.
+       * snames.ads-tmpl: Remove unreferenced names.
 
-2021-05-04  Arnaud Charlet  <charlet@adacore.com>
+2022-01-11  Yannick Moy  <moy@adacore.com>
 
-       * styleg.adb: Address ??? comments.
+       * libgnat/s-aridou.adb (Double_Divide): Adjust proof of lemma
+       Prove_Signs, call lemma for commutation of Big and
+       multiplication.
+       (Multiply_With_Ovflo_Check): Adjust postcondition of
+       Prove_Pos_Int.
+       (Scaled_Divide): Explicit commutation in the proof of lemma
+       Prove_Multiplication, add new lemma Prove_Shift_Progress for
+       congruence property that is not proved in a larger context, add
+       assertions at the end of the loop to state loop invariant
+       properties.
 
-2021-05-03  Arnaud Charlet  <charlet@adacore.com>
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
 
-       * 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.
+       * sem_eval.ads (Compile_Time_Known_Value_Or_Aggr): Remove spec.
+       * sem_eval.adb (Compile_Time_Known_Value_Or_Aggr): Remove body.
 
-2021-05-03  Arnaud Charlet  <charlet@adacore.com>
+2022-01-11  Yannick Moy  <moy@adacore.com>
 
-       * libgnat/a-coorma.ads (Map): Add missing
-       Preelaborate_Initialization.
+       * libgnat/a-strfix.adb (Insert, Overwrite): Add assertions.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-11  Arnaud Charlet  <charlet@adacore.com>
 
-       * 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.
+       PR ada/79724
+       * osint.adb (Program_Name): Fix handling of suffixes.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-11  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.
+       * exp_ch4.adb (Size_In_Storage_Elements): Remove unnecessary
+       DECLARE block; refill code and comments.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-11  Eric Botcazou  <ebotcazou@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.
+       * sem_ch3.adb (Analyze_Subtype_Declaration): In the case of an array
+       copy Packed_Array_Impl_Type manually here.
+       (Copy_Array_Subtype_Attributes): Do not copy it here.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
 
-       * einfo.adb (Write_Entity_Info): Simplify an Ekind membership
-       test.
-       * exp_aggr.adb (Is_CCG_Supported_Aggregate): Likewise.
+       * exp_ch7.adb (Set_Block_Elab_Proc, Unnest_Block, Unnest_Loop,
+       Unnest_Statement_List): Simplify with Make_Temporary.
+       * exp_put_image.adb (Build_Image_Call): Likewise.
+       * inline.adb (Generate_Subprogram_Body): Likewise.
+       * sem_ch13.adb (Build_Predicate_Functions): Likewise.
+       * sem_util.adb (New_Copy_Separate_List): Likewise.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-11  Etienne Servais  <servais@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.
+       * sem_ch3.adb (Check_Dynamic_Object): Swap check order.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-11  Yannick Moy  <moy@adacore.com>
 
-       * rtsfind.adb (SPARK_Implicit_Load): Simplify with Discard_Node.
+       * libgnat/s-casuti.adb: Add ghost code.
+       * libgnat/s-casuti.ads: Add contracts.
 
-2021-05-03  Arnaud Charlet  <charlet@adacore.com>
+2022-01-11  Claire Dross  <dross@adacore.com>
 
-       * Makefile.rtl: Update copyright notice.
-       * ada_get_targ.adb: Likewise.
+       * libgnat/a-tiinau.ads: Use a procedure for the Scan parameter
+       instead of a function with side-effects.
+       * libgnat/a-tiinau.adb: Idem.
+       * libgnat/a-wtinau.ads: Idem.
+       * libgnat/a-wtinau.adb: Idem.
+       * libgnat/a-ztinau.ads: Idem.
+       * libgnat/a-ztinau.adb: Idem.
+       * libgnat/s-valint.ads: Change the function with side-effects
+       Scan_Integer into a procedure
+       * libgnat/s-vallli.ads: Idem.
+       * libgnat/s-valllli.ads: Idem.
+       * libgnat/s-vallllu.ads: Add SPARK_Mode and pragma to ignore
+       assertions in instance.
+       * libgnat/s-valllu.ads: Idem.
+       * libgnat/s-valuns.ads: Idem.
+       * libgnat/s-valuei.ads: Use a procedure for the
+       Scan_Raw_Unsigned parameter instead of a function with
+       side-effects and change the function with side-effects
+       Scan_Integer into a procedure.
+       * libgnat/s-valuei.adb: Idem.
+       * libgnat/s-valuti.ads: Introduce a ghost function that scans an
+       exponent and complete the postcondition of Scan_Exponent to also
+       describe the value of Ptr after the call. Fix the postcondition
+       of Scan_Underscore. Simplify the definition of
+       Scan_Natural_Ghost.
+       * libgnat/s-valuti.adb: Idem.
+       * libgnat/s-valboo.ads, libgnat/s-valboo.adb: Update calls to
+       First_Non_Space_Ghost.
+       * libgnat/s-valueu.ads: Add functional contracts.
+       * libgnat/s-valueu.adb: Idem.
+
+2022-01-11  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-expmod.adb (Exp_Modular): Add assertions.
+
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * errout.adb (Error_Msg_CRT): Build message with string
+       concatenation; it is slightly repetitive but much easier to
+       read.
+
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch11.adb (Expand_N_Exception_Declaration): Remove explicit
+       initialization of the exceptF object.
+
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * par-ch3.adb (P_Array_Type_Definition): Use
+       Error_Msg_GNAT_Extension.
+
+2022-01-11  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_disp.adb (Check_Controlling_Type): Add test for the case
+       where Subp is a subprogram associated with a protected
+       subprogram and return Empty, unless Tagged_Type is the
+       corresponding record type of the protected type.
+
+2022-01-11  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-veboop.adb: Add ghost code for proof.
+       * libgnat/s-veboop.ads: Add specification.
+
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_aggr.adb, exp_attr.adb, exp_ch3.adb, exp_ch7.adb,
+       exp_dist.adb, exp_util.adb, freeze.adb, frontend.adb,
+       inline.adb, itypes.adb, lib-load.adb, lib-xref.adb,
+       libgnat/a-cfhase.adb, libgnat/a-cforse.adb,
+       libgnat/a-chtgbo.adb, libgnat/a-crdlli.adb,
+       libgnat/a-except.adb, libgnat/a-strfix.adb,
+       libgnat/a-textio.adb, libgnat/a-tienau.adb,
+       libgnat/a-tigeau.adb, libgnat/a-witeio.adb,
+       libgnat/a-wtenau.adb, libgnat/a-wtgeau.adb,
+       libgnat/a-ztenau.adb, libgnat/a-ztexio.adb,
+       libgnat/a-ztgeau.adb, libgnat/g-comlin.adb,
+       libgnat/g-debpoo.adb, libgnat/g-expect.adb,
+       libgnat/s-fileio.adb, libgnat/s-memory.adb, libgnat/s-mmap.adb,
+       libgnat/s-objrea.adb, libgnat/s-pehage.adb,
+       libgnat/s-regpat.adb, libgnat/s-shasto.adb,
+       libgnat/s-valued.adb, libgnat/s-valuef.adb, par-ch11.adb,
+       par-ch4.adb, par-ch6.adb, par-ch9.adb, par_sco.adb,
+       repinfo-input.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb,
+       sem_ch13.adb, sem_ch4.adb, sem_eval.adb, sem_prag.adb,
+       sem_res.adb, sem_util.adb, sinput.adb, switch-c.adb: Fix style.
+
+2022-01-11  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch9.adb, gen_il-types.ads, make.adb, par-ch12.adb,
+       sem_ch13.adb: Use membership tests.
+
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * erroutc.ads, erroutc.adb (Is_Runtime_Raise): Global flag to
+       connect status of initial messages and their continuation; we
+       already have several flags like this.
+       (Error_Msg_Object): Add field Warn_Runtime_Raise to connect
+       error reporting (when problematic code is found) and removal
+       (when problematic code is determined to be dead).
+       * errout.adb (Error_Msg_Internal): Handle new field when
+       recording a continuation message; propagate status from
+       continuation to the preceding messages.
+       (To_Be_Removed): For dead code remove both simple warnings and
+       warnings about constraint errors that have been escalated to
+       hard errors.
+       (Set_Msg_Text): Recognize warnings about constraint errors that
+       are escalated to hard errors.
+       * errutil.adb (Error_Msg): Handle added field when recording a
+       new message.
+
+2022-01-11  Piotr Trojanek  <trojanek@adacore.com>
+
+       * errout.adb (Error_Msg_Internal): Propagate warnings-as-error
+       flag from continuation message to its preceding messages.
+
+2022-01-11  Arnaud Charlet  <charlet@adacore.com>
+
+       * gnatvsn.ads (Current_Year): Update copyright notice, bump to
+       2022.
+       * ada_get_targ.adb: Update copyright notice.
        * adabkend.adb: Likewise.
        * adabkend.ads: Likewise.
        * adadecode.c: Likewise.
        * aux-io.c: Likewise.
        * back_end.adb: Likewise.
        * back_end.ads: Likewise.
+       * backend_utils.adb: Likewise.
+       * backend_utils.ads: Likewise.
        * bcheck.adb: Likewise.
        * bcheck.ads: Likewise.
        * binde.adb: Likewise.
        * cal.c: Likewise.
        * casing.adb: Likewise.
        * casing.ads: Likewise.
-       * ceinfo.adb: Likewise.
        * checks.adb: Likewise.
        * checks.ads: Likewise.
        * cio.c: Likewise.
        * contracts.ads: Likewise.
        * csets.adb: Likewise.
        * csets.ads: Likewise.
-       * csinfo.adb: Likewise.
        * cstand.adb: Likewise.
        * cstand.ads: Likewise.
        * cstreams.c: Likewise.
        * ctrl_c.c: Likewise.
-       * debug.adb: Likewise.
        * debug.ads: Likewise.
        * debug_a.adb: Likewise.
        * debug_a.ads: Likewise.
+       * einfo-utils.adb: Likewise.
+       * einfo-utils.ads: Likewise.
        * einfo.adb: Likewise.
        * einfo.ads: Likewise.
        * elists.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.
+       * gen_il-fields.ads: Likewise.
+       * gen_il-gen-gen_entities.adb: Likewise.
+       * gen_il-gen-gen_nodes.adb: Likewise.
+       * gen_il-gen.adb: Likewise.
+       * gen_il-gen.ads: Likewise.
+       * gen_il-internals.adb: Likewise.
+       * gen_il-internals.ads: Likewise.
+       * gen_il-main.adb: Likewise.
+       * gen_il-types.ads: Likewise.
+       * gen_il.adb: Likewise.
+       * gen_il.ads: Likewise.
        * get_scos.adb: Likewise.
        * get_scos.ads: Likewise.
        * get_targ.adb: Likewise.
        * gnatprep.adb: Likewise.
        * gnatprep.ads: Likewise.
        * gnatvsn.adb: Likewise.
-       * gnatvsn.ads: Likewise.
        * gnatxref.adb: Likewise.
        * gprep.adb: Likewise.
        * gprep.ads: Likewise.
        * libgnarl/i-vxinco.ads: Likewise.
        * libgnarl/s-inmaop.ads: Likewise.
        * libgnarl/s-inmaop__dummy.adb: Likewise.
+       * libgnarl/s-inmaop__hwint.adb: Likewise.
        * libgnarl/s-inmaop__posix.adb: Likewise.
-       * libgnarl/s-inmaop__vxworks.adb: Likewise.
        * libgnarl/s-interr.adb: Likewise.
        * libgnarl/s-interr.ads: Likewise.
        * libgnarl/s-interr__dummy.adb: Likewise.
        * libgnarl/s-intman__mingw.adb: Likewise.
        * libgnarl/s-intman__posix.adb: Likewise.
        * libgnarl/s-intman__qnx.adb: Likewise.
+       * libgnarl/s-intman__rtems.adb: Likewise.
+       * libgnarl/s-intman__rtems.ads: Likewise.
        * libgnarl/s-intman__solaris.adb: Likewise.
        * libgnarl/s-intman__susv3.adb: Likewise.
        * libgnarl/s-intman__vxworks.adb: Likewise.
        * libgnarl/s-osinte__x32.adb: Likewise.
        * libgnarl/s-proinf.adb: Likewise.
        * libgnarl/s-proinf.ads: Likewise.
+       * libgnarl/s-putaim.adb: Likewise.
+       * libgnarl/s-putaim.ads: Likewise.
        * libgnarl/s-qnx.ads: Likewise.
        * libgnarl/s-solita.adb: Likewise.
        * libgnarl/s-solita.ads: Likewise.
        * libgnarl/s-taprop__mingw.adb: Likewise.
        * libgnarl/s-taprop__posix.adb: Likewise.
        * libgnarl/s-taprop__qnx.adb: Likewise.
+       * libgnarl/s-taprop__rtems.adb: Likewise.
        * libgnarl/s-taprop__solaris.adb: Likewise.
        * libgnarl/s-taprop__vxworks.adb: Likewise.
        * libgnarl/s-tarest.adb: Likewise.
        * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
        * libgnarl/s-vxwext__kernel.adb: Likewise.
        * libgnarl/s-vxwext__kernel.ads: Likewise.
-       * libgnarl/s-vxwext__noints.adb: Likewise.
        * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
        * libgnarl/s-vxwext__rtp.adb: Likewise.
        * libgnarl/s-vxwext__rtp.ads: Likewise.
-       * libgnarl/s-vxwext__vthreads.ads: Likewise.
        * libgnarl/s-vxwork__aarch64.ads: Likewise.
        * libgnarl/s-vxwork__arm.ads: Likewise.
        * libgnarl/s-vxwork__ppc.ads: Likewise.
        * libgnat/a-coorse.ads: Likewise.
        * libgnat/a-coprnu.adb: Likewise.
        * libgnat/a-coprnu.ads: Likewise.
+       * libgnat/a-costso.adb: Likewise.
+       * libgnat/a-costso.ads: Likewise.
        * libgnat/a-crbltr.ads: Likewise.
        * libgnat/a-crbtgk.adb: Likewise.
        * libgnat/a-crbtgk.ads: Likewise.
        * libgnat/a-einuoc.ads: Likewise.
        * libgnat/a-elchha.adb: Likewise.
        * libgnat/a-elchha.ads: Likewise.
-       * libgnat/a-elchha__vxworks-ppc-full.adb: Likewise.
        * libgnat/a-envvar.adb: Likewise.
        * libgnat/a-excach.adb: Likewise.
        * libgnat/a-except.adb: Likewise.
        * libgnat/a-nalofl.ads: Likewise.
        * libgnat/a-nashfl.ads: Likewise.
        * libgnat/a-nashfl__wraplf.ads: Likewise.
+       * libgnat/a-nbnbig.adb: Likewise.
        * libgnat/a-nbnbin.adb: Likewise.
        * libgnat/a-nbnbin__gmp.adb: Likewise.
        * libgnat/a-nbnbre.adb: Likewise.
        * libgnat/a-ssicst.adb: Likewise.
        * libgnat/a-ssicst.ads: Likewise.
        * libgnat/a-stboha.adb: Likewise.
+       * libgnat/a-stbubo.adb: Likewise.
+       * libgnat/a-stbubo.ads: Likewise.
+       * libgnat/a-stbufi.adb: Likewise.
+       * libgnat/a-stbufi.ads: Likewise.
+       * libgnat/a-stbufo.adb: Likewise.
+       * libgnat/a-stbufo.ads: Likewise.
+       * libgnat/a-stbuun.adb: Likewise.
+       * libgnat/a-stbuut.adb: Likewise.
+       * libgnat/a-stbuut.ads: 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-ststio.ads: Likewise.
        * libgnat/a-ststun.adb: Likewise.
        * libgnat/a-ststun.ads: Likewise.
-       * libgnat/a-stteou.ads: Likewise.
+       * libgnat/a-sttebu.adb: Likewise.
        * libgnat/a-stunau.adb: Likewise.
        * libgnat/a-stunau.ads: Likewise.
        * libgnat/a-stunau__shared.adb: Likewise.
        * libgnat/g-hesorg.ads: Likewise.
        * libgnat/g-htable.adb: Likewise.
        * libgnat/g-htable.ads: Likewise.
-       * libgnat/g-io-put__vxworks.adb: Likewise.
        * libgnat/g-io.adb: Likewise.
        * libgnat/g-io.ads: Likewise.
        * libgnat/g-io_aux.adb: Likewise.
        * libgnat/s-atocou.adb: Likewise.
        * libgnat/s-atocou.ads: Likewise.
        * libgnat/s-atocou__builtin.adb: Likewise.
-       * libgnat/s-atocou__x86.adb: Likewise.
        * libgnat/s-atoope.ads: Likewise.
        * libgnat/s-atopex.adb: Likewise.
        * libgnat/s-atopex.ads: Likewise.
        * libgnat/s-dlmkio.ads: Likewise.
        * libgnat/s-dlmopr.ads: Likewise.
        * libgnat/s-dmotpr.ads: Likewise.
+       * libgnat/s-dorepr.adb: Likewise.
+       * libgnat/s-dorepr__fma.adb: Likewise.
+       * libgnat/s-dourea.adb: Likewise.
+       * libgnat/s-dourea.ads: Likewise.
        * libgnat/s-dsaser.ads: Likewise.
        * libgnat/s-dwalin.adb: Likewise.
        * libgnat/s-dwalin.ads: Likewise.
        * libgnat/s-exctab.ads: Likewise.
        * libgnat/s-exctra.adb: Likewise.
        * libgnat/s-exctra.ads: Likewise.
+       * libgnat/s-exnflt.ads: Likewise.
        * libgnat/s-exnint.adb: Likewise.
        * libgnat/s-exnint.ads: Likewise.
+       * libgnat/s-exnlfl.ads: Likewise.
        * libgnat/s-exnllf.adb: Likewise.
        * libgnat/s-exnllf.ads: Likewise.
        * libgnat/s-exnlli.adb: Likewise.
        * libgnat/s-expmod.ads: Likewise.
        * libgnat/s-exponn.adb: Likewise.
        * libgnat/s-exponn.ads: Likewise.
+       * libgnat/s-exponr.adb: Likewise.
+       * libgnat/s-exponr.ads: Likewise.
        * libgnat/s-expont.adb: Likewise.
        * libgnat/s-expont.ads: Likewise.
        * libgnat/s-exponu.adb: Likewise.
        * libgnat/s-imagef.ads: Likewise.
        * libgnat/s-imagei.adb: Likewise.
        * libgnat/s-imagei.ads: Likewise.
+       * libgnat/s-imagen.adb: Likewise.
+       * libgnat/s-imagen.ads: Likewise.
+       * libgnat/s-imager.adb: Likewise.
+       * libgnat/s-imager.ads: Likewise.
        * libgnat/s-imageu.adb: Likewise.
        * libgnat/s-imageu.ads: Likewise.
        * libgnat/s-imagew.adb: 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-imen16.ads: Likewise.
+       * libgnat/s-imen32.ads: Likewise.
+       * libgnat/s-imenu8.ads: Likewise.
        * libgnat/s-imfi128.ads: Likewise.
        * libgnat/s-imfi32.ads: Likewise.
        * libgnat/s-imfi64.ads: Likewise.
        * libgnat/s-imgboo.ads: Likewise.
        * libgnat/s-imgcha.adb: Likewise.
        * libgnat/s-imgcha.ads: Likewise.
-       * libgnat/s-imgenu.adb: Likewise.
-       * libgnat/s-imgenu.ads: Likewise.
+       * libgnat/s-imgflt.ads: Likewise.
        * libgnat/s-imgint.adb: Likewise.
        * libgnat/s-imgint.ads: Likewise.
+       * libgnat/s-imglfl.ads: Likewise.
        * libgnat/s-imgllb.adb: Likewise.
        * libgnat/s-imgllb.ads: Likewise.
+       * libgnat/s-imgllf.ads: Likewise.
        * libgnat/s-imglli.adb: Likewise.
        * libgnat/s-imglli.ads: Likewise.
        * libgnat/s-imglllb.ads: Likewise.
        * libgnat/s-osprim__rtems.adb: Likewise.
        * libgnat/s-osprim__solaris.adb: Likewise.
        * libgnat/s-osprim__unix.adb: Likewise.
-       * libgnat/s-osprim__vxworks.adb: Likewise.
        * libgnat/s-osprim__x32.adb: Likewise.
-       * libgnat/s-osvers__vxworks-653.ads: Likewise.
        * libgnat/s-pack03.adb: Likewise.
        * libgnat/s-pack03.ads: Likewise.
        * libgnat/s-pack05.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-parame__hpux.ads: Likewise.
+       * libgnat/s-parame__posix2008.ads: Likewise.
        * libgnat/s-parame__rtems.adb: Likewise.
        * libgnat/s-parame__vxworks.adb: Likewise.
        * libgnat/s-parame__vxworks.ads: Likewise.
        * libgnat/s-parint.adb: Likewise.
        * libgnat/s-parint.ads: Likewise.
+       * libgnat/s-pehage.adb: Likewise.
+       * libgnat/s-pehage.ads: Likewise.
        * libgnat/s-pooglo.adb: Likewise.
        * libgnat/s-pooglo.ads: Likewise.
        * libgnat/s-pooloc.adb: 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-soflin.ads: Likewise.
        * libgnat/s-soliin.adb: Likewise.
        * libgnat/s-soliin.ads: Likewise.
-       * libgnat/s-sopco3.adb: Likewise.
-       * libgnat/s-sopco3.ads: Likewise.
-       * libgnat/s-sopco4.adb: Likewise.
-       * libgnat/s-sopco4.ads: Likewise.
-       * libgnat/s-sopco5.adb: Likewise.
-       * libgnat/s-sopco5.ads: Likewise.
        * libgnat/s-spsufi.adb: Likewise.
        * libgnat/s-spsufi.ads: Likewise.
        * libgnat/s-stache.adb: Likewise.
        * libgnat/s-stchop.adb: Likewise.
        * libgnat/s-stchop.ads: Likewise.
        * libgnat/s-stchop__limit.ads: Likewise.
-       * libgnat/s-stchop__rtems.adb: Likewise.
        * libgnat/s-stchop__vxworks.adb: Likewise.
        * libgnat/s-stoele.adb: Likewise.
        * libgnat/s-stoele.ads: Likewise.
        * libgnat/s-strhas.ads: Likewise.
        * libgnat/s-string.adb: Likewise.
        * libgnat/s-string.ads: Likewise.
-       * libgnat/s-strops.adb: Likewise.
-       * libgnat/s-strops.ads: Likewise.
        * libgnat/s-ststop.adb: Likewise.
        * libgnat/s-ststop.ads: Likewise.
        * libgnat/s-tasloc.adb: Likewise.
        * libgnat/s-tasloc.ads: Likewise.
-       * libgnat/s-thread.ads: Likewise.
-       * libgnat/s-thread__ae653.adb: Likewise.
        * libgnat/s-traceb.adb: Likewise.
        * libgnat/s-traceb.ads: Likewise.
        * libgnat/s-traceb__hpux.adb: Likewise.
        * libgnat/s-vade128.ads: Likewise.
        * libgnat/s-vade32.ads: Likewise.
        * libgnat/s-vade64.ads: Likewise.
+       * libgnat/s-vaen16.ads: Likewise.
+       * libgnat/s-vaen32.ads: Likewise.
+       * libgnat/s-vaenu8.ads: Likewise.
        * libgnat/s-vafi128.ads: Likewise.
        * libgnat/s-vafi32.ads: Likewise.
        * libgnat/s-vafi64.ads: Likewise.
        * libgnat/s-valboo.ads: Likewise.
        * libgnat/s-valcha.adb: Likewise.
        * libgnat/s-valcha.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-valuef.ads: Likewise.
        * libgnat/s-valuei.adb: Likewise.
        * libgnat/s-valuei.ads: Likewise.
+       * libgnat/s-valuen.adb: Likewise.
+       * libgnat/s-valuen.ads: Likewise.
        * libgnat/s-valuer.adb: Likewise.
        * libgnat/s-valuer.ads: Likewise.
        * libgnat/s-valueu.adb: Likewise.
        * libgnat/system-vxworks-e500-kernel.ads: Likewise.
        * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
        * libgnat/system-vxworks-e500-rtp.ads: Likewise.
-       * libgnat/system-vxworks-e500-vthread.ads: Likewise.
        * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
-       * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
        * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
        * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
-       * libgnat/system-vxworks-ppc-vthread.ads: Likewise.
-       * libgnat/system-vxworks-ppc.ads: Likewise.
        * libgnat/system-vxworks-x86-kernel.ads: Likewise.
        * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
        * libgnat/system-vxworks-x86-rtp.ads: Likewise.
-       * libgnat/system-vxworks-x86-vthread.ads: Likewise.
-       * libgnat/system-vxworks-x86.ads: Likewise.
        * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
        * libgnat/system-vxworks7-aarch64.ads: Likewise.
        * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
        * sigtramp-armdroid.c: Likewise.
        * sigtramp-ios.c: Likewise.
        * sigtramp-qnx.c: Likewise.
+       * sigtramp-vxworks-target.h: Likewise.
        * sigtramp-vxworks.c: Likewise.
        * sigtramp.h: Likewise.
        * sinfo-cn.adb: Likewise.
        * sinfo-cn.ads: Likewise.
+       * sinfo-utils.adb: Likewise.
+       * sinfo-utils.ads: Likewise.
        * sinfo.adb: Likewise.
        * sinfo.ads: Likewise.
        * sinput-c.adb: 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.
        * stringt.adb: Likewise.
        * stringt.ads: Likewise.
        * stringt.h: Likewise.
+       * strub.adb: Likewise.
+       * strub.ads: Likewise.
        * style.adb: Likewise.
        * style.ads: Likewise.
        * styleg.adb: Likewise.
        * warnsw.ads: Likewise.
        * widechar.adb: Likewise.
        * widechar.ads: Likewise.
-       * xeinfo.adb: Likewise.
-       * xnmake.adb: Likewise.
        * xoscons.adb: Likewise.
        * xr_tabls.adb: Likewise.
        * xr_tabls.ads: Likewise.
        * xref_lib.adb: Likewise.
        * xref_lib.ads: Likewise.
-       * xsinfo.adb: Likewise.
        * xsnamest.adb: Likewise.
-       * xtreeprs.adb: Likewise.
        * xutil.adb: Likewise.
        * xutil.ads: Likewise.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-11  Richard Kenner  <kenner@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.
+       * debug.adb: Add documentation for new -gnatd_u and old -gnatd_R
+       flags used for GNAT LLVM and its CCG.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-11  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.
+       * Makefile.rtl (X86_TARGET_PAIRS): Use __builtin variant of
+       System.Atomic_Counters.
+       * libgnat/s-atocou__x86.adb: Remove.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * sem_ch4.adb (Try_Object_Operation): Reuse local constant.
+       * gcc-interface/trans.c (Identifier_to_gnu): Use correct subtype.
+       (elaborate_profile): New function.
+       (Call_to_gnu): Call it on the formals and the result type before
+       retrieving the translated result type from the subprogram type.
 
-2021-05-03  Ed Schonberg  <schonberg@adacore.com>
+2022-01-10  Eric Botcazou  <ebotcazou@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.
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Fix
+       computation of boolean result in the unchecked union case.
+       (components_to_record): Rename MAYBE_UNUSED parameter to IN_VARIANT
+       and remove local variable of the same name.  Pass NULL recursively
+       as P_GNU_REP_LIST for nested variants in the unchecked union case.
 
-2021-05-03  Dmitriy Anisimkov  <anisimko@adacore.com>
+2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * libgnat/g-casuti.adb: Replace with "pragma No_Body".
-       * libgnat/g-casuti.ads: Replace with a package renaming.
+       * gcc-interface/trans.c (lvalue_required_p) <N_Pragma>: New case.
+       <N_Pragma_Argument_Association>: Likewise.
+       (Pragma_to_gnu) <Pragma_Inspection_Point>: Fetch the corresponding
+       variable of a constant before marking it as addressable.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-10  Arnaud Charlet  <charlet@adacore.com>
 
-       * sem_attr.adb (Check_Program_Unit): Fix references to
-       Concurrent_Kind and Is_Concurrent_Type; avoid repeated calls to
-       Entity.
+       * gcc-interface/Make-lang.in (ADA_GENERATED_FILES): Remove
+       s-casuti.ad?, s-crtl.ad?, s-os_lib.ad?.  Update list of object
+       files accordingly.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-10  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.
+       * libgnat/s-atopri.ads (Atomic_Compare_Exchange): Replaces
+       deprecated Sync_Compare_And_Swap.
+       * libgnat/s-atopri.adb (Lock_Free_Try_Write): Switch from __sync
+       to __atomic builtins.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-10  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.
+       * libgnat/s-exponn.adb, libgnat/s-expont.adb,
+       libgnat/s-exponu.adb, libgnat/s-widthi.adb,
+       libgnat/s-widthu.adb: Remove CodePeer annotations for pragma
+       Loop_Variant.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
 
-       * 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.
+       * exp_prag.adb (Expand_Pragma_Loop_Variant): Disable expansion
+       in CodePeer mode.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
 
-       * 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.
+       * sem_util.adb (Is_Child_Or_Sibling): Fix typo in comment.
 
-2021-05-03  Arnaud Charlet  <charlet@adacore.com>
+2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * sem_prag.adb (Set_Exported): Do not warn on exporting a type.
+       * exp_pakd.adb (Install_PAT): If the PAT is a scalar type, apply
+       the canonical adjustment to its alignment.
 
-2021-05-03  Ed Schonberg  <schonberg@adacore.com>
+2022-01-10  Piotr Trojanek  <trojanek@adacore.com>
 
-       * 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.
+       * libgnat/s-atocou__builtin.adb (Decrement, Increment): Switch
+       from __sync to __atomic builtins; use 'Address to be consistent
+       with System.Atomic_Primitives.
 
-2021-05-03  Justin Squirek  <squirek@adacore.com>
+2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * 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.
+       * exp_pakd.adb (Install_PAT): Do not reset the alignment here.
+       * layout.adb (Layout_Type): Call Adjust_Esize_Alignment after having
+       copied the RM_Size onto the Esize when the latter is too small.
 
-2021-05-03  Justin Squirek  <squirek@adacore.com>
+2022-01-10  Justin Squirek  <squirek@adacore.com>
 
-       * 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.
+       * sem_warn.adb (Check_References): Handle arrays of tasks
+       similar to task objects.
 
-2021-05-03  Ed Schonberg  <schonberg@adacore.com>
+2022-01-07  Patrick Bernardi  <bernardi@adacore.com>
 
-       * 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.
+       * libgnat/a-direct.adb (Search_Data): Remove type.
+       (Directory_Vectors): New package instantiation.
+       (Search_State): New type.
+       (Fetch_Next_Entry): Remove.
+       (Close): Remove.
+       (Finalize): Rewritten.
+       (Full_Name): Ditto.
+       (Get_Next_Entry): Return next entry from Search results vector
+       rather than querying the directory directly using readdir.
+       (Kind): Rewritten.
+       (Modification_Time): Rewritten.
+       (More_Entries): Use Search state cursor to determine if more
+       entries are available for users to read.
+       (Simple_Name): Rewritten.
+       (Size): Rewritten.
+       (Start_Search_Internal): Rewritten to load the contents of the
+       directory that matches the pattern and filter into the search
+       object.
+       * libgnat/a-direct.ads (Search_Type): New type.
+       (Search_Ptr): Ditto.
+       (Directory_Entry_Type): Rewritten to support new Start_Search
+       procedure.
+       * libgnat/s-filatt.ads (File_Length_Attr): New function.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-07  Etienne Servais  <servais@adacore.com>
 
-       * 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.
+       * sem_attr.adb (Check_Reference): Fix condition.
 
-2021-05-03  Arnaud Charlet  <charlet@adacore.com>
+2022-01-07  Ghjuvan Lacambre  <lacambre@adacore.com>
 
-       * tbuild.adb (Make_Implicit_Loop_Statement): Disable restriction
-       checking on dead paths.
+       * libgnarl/s-taprop__mingw.adb (Timed_Sleep): Remove "pragma
+       Unreferenced" for Result.
+       (Timed_Delay): Likewise.
 
-2021-05-03  Arnaud Charlet  <charlet@adacore.com>
+2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
 
-       * 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.
+       * gen_il-gen.adb (Put_Make_Decls): Put pragma Inline in a
+       dedicated line, so that the current indentation is taken into
+       account.
 
-2021-05-03  Arnaud Charlet  <charlet@adacore.com>
+2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
 
-       * libgnat/a-ztcoio.adb: Remove unused with clause.
+       * exp_aggr.adb (Build_Array_Aggr_Code): Fix inconsistent style
+       in comments and code.
 
-2021-05-03  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
 
-       * 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.
+       * exp_aggr.adb (Gen_Assign): Remove explicit initialization for
+       components of access types.
+       (Get_Assoc_Expr): Enable initialization for components of all
+       types that require simple initialization.
 
-2021-05-03  Ed Schonberg  <schonberg@adacore.com>
+2022-01-07  Javier Miranda  <miranda@adacore.com>
 
-       * 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.
+       * atree.ads (Traverse_Func_With_Parent): New generic subprogram.
+       (Traverse_Proc_With_Parent): Likewise.
+       * atree.adb (Parents_Stack): New table used to traverse trees
+       passing the parent field of each node.
+       (Internal_Traverse_With_Parent): New generic subprogram.
+       (Traverse_Func_With_Parent): Likewise.
+       (Traverse_Proc_With_Parent): Likewise.
+       * contracts.adb (Fix_Parents): New subprogram.
+       (Restore_Original_Selected_Component): Enhanced to fix the
+       parent field of restored nodes.
+       (Inherit_Condition): Adding assertions to check the parent field
+       of inherited conditions and to ensure that the built inherited
+       condition has no reference to the formals of the parent
+       subprogram.
+       * sem_util.ads, sem_util.adb (Check_Parents): New subprogram.
 
-2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-07  Etienne Servais  <servais@adacore.com>
 
-       * 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.
+       * sem_attr.adb (Check_Placement_In_Test_Case): Fix typo.
 
-2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+2022-01-07  Justin Squirek  <squirek@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.
+       * comperr.adb (Delete_SCIL_Files): Replace unnecessary
+       Unreferenced pragma with specific pragma Warnings.
+       * doc/gnat_rm/implementation_defined_pragmas.rst (Unreferenced):
+       Add documentation for new behavior.
+       * gnat_rm.texi: Regenerate.
+       * erroutc.adb (Set_At): Remove useless assignment.
+       * exp_ch2.adb (In_Assignment_Context): Deleted.
+       (Is_Object_Renaming_Name): Replace calls to Is_LHS with calls to
+       Known_To_Be_Assigned.
+       (Expand_Current_Value): Replace calls to May_Be_Lvalue with
+       calls to Known_To_Be_Assigned.
+       (Expand_Entry_Paramter): Replace calls to In_Assignment_Context
+       with calls to Known_To_Be_Assigned.
+       * exp_ch4.adb (Expand_N_Op_Rem): Remove unnecessary Unreferenced
+       pragma.
+       * exp_imgv.adb (Build_Enumeration_Image_Tables): Default
+       initialize S_N.
+       * ghost.adb (Check_Ghost_Policy): Replace call to May_Be_Lvalue
+       with call to Known_To_Be_Assigned.
+       * lib-xref.adb (Is_On_LHS): Deleted.
+       (OK_To_Set_Referenced): Rewrite subprogram to encompass the new
+       pragma Unreferenced behavior.
+       (Process_Deferred_References): Replace call to Is_LHS with call
+       to Known_To_Be_Assigned.
+       * libgnarl/s-taasde.adb, libgnarl/s-tasren.adb,
+       libgnarl/s-tpobop.adb, libgnat/a-calend.adb,
+       libgnat/a-calfor.adb, libgnat/a-cbdlli.adb,
+       libgnat/a-cbhama.adb, libgnat/a-cbhase.adb,
+       libgnat/a-cbmutr.adb, libgnat/a-cborma.adb,
+       libgnat/a-cborse.adb, libgnat/a-cdlili.adb,
+       libgnat/a-cfhama.adb, libgnat/a-cforse.adb,
+       libgnat/a-cidlli.adb, libgnat/a-cihama.adb,
+       libgnat/a-cihase.adb, libgnat/a-cimutr.adb,
+       libgnat/a-ciorma.adb, libgnat/a-ciormu.adb,
+       libgnat/a-ciorse.adb, libgnat/a-cohama.adb,
+       libgnat/a-cohase.adb, libgnat/a-comutr.adb,
+       libgnat/a-convec.adb, libgnat/a-coorma.adb,
+       libgnat/a-coormu.adb, libgnat/a-coorse.adb,
+       libgnat/a-crdlli.adb, libgnat/a-tigeau.adb,
+       libgnat/a-wtgeau.adb, libgnat/a-ztgeau.adb,
+       libgnat/g-calend.adb, libgnat/g-comlin.adb,
+       libgnat/g-expect.adb, libgnat/g-mbflra.adb,
+       libgnat/g-spipat.adb, libgnat/s-fatgen.adb,
+       libgnat/s-fileio.adb, libgnat/s-os_lib.adb,
+       libgnat/s-regpat.adb, libgnat/s-valued.adb,
+       libgnat/s-valuer.adb: Remove unnecessary Unreferenced pragmas
+       * sem_ch10.adb (Process_Spec_Clauses): Remove useless
+       assignments.
+       * sem_ch13.adb (Validate_Literal_Aspect): Default initialize I.
+       * sem_ch3.adb (Build_Derived_Concurrent_Type): Default
+       initialize Corr_Decl.
+       * sem_ch8.adb (Undefined): Replace calls to Is_LHS with calls to
+       Known_To_Be_Assigned.
+       (In_Abstract_View_Pragma): Likewise.
+       * sem_eval.adb (Eval_Selected_Component): Replace calls to
+       Is_LHS with calls to Known_To_Be_Assigned.
+       * sem_res.adb (Init_Component): Replace calls to May_Be_Lvalue
+       with calls to Known_To_Be_Assigned.
+       * sem_util.adb, sem_util.ads (End_Label_Loc): Default initialize
+       Owner.
+       (Explain_Limited_Type): Default initialize Expr_Func.
+       (Find_Actual): Modified to handle entry families.
+       (Is_LHS): Deleted.
+       (May_Be_Lvalue): Deleted.
+       (Known_To_Be_Assigned): Modified and improved to handle all
+       cases.
+       * sem_warn.adb (Traverse_Result): Replace calls to May_Be_Lvalue
+       with calls to Known_To_Be_Assigned.
+       (Check_Ref): Modify error on unreferenced out parameters to take
+       into account different warning flags.
+
+2022-01-07  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch3.adb (Reorder_Interfaces): When the conflicting
+       interface is identified we just replace the interface in the
+       list of interfaces of the tagged type (instead of adding a
+       duplicate to the list of interfaces).
+
+2022-01-07  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * adaint.c (__gnat_kill): Terminate process only in case of
+       SIGKILL, SIGINT, SIGBREAK, SIGTERM, SIGABRT.  Do not call
+       OpenProcess if not going to terminate process.
+
+2022-01-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_prag.adb (Expand_Pragma_Inspection_Point): Do a single pass
+       over the arguments of the pragma.  Set the Address_Taken flag on
+       them and use the Has_Delayed_Freeze flag to spot those which have
+       their elaboration delayed.  Reuse the location variable Loc.
+
+2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * osint.adb (To_Lower): Clarify that only To_Lower function
+       causes bootstrap issues; fix style.
+       * treepr.adb (Print_Str_Mixed_Case): Reuse existing case
+       conversion routine.
+       (To_Mixed): Rename from Capitalize; reuse System.Case_Util
+       procedure and explain the bootstrap issue.
+
+2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch7.adb (Process_Transients_In_Scope): Remove unnecessary
+       initialization of Must_Hook; change Detect_Subprogram_Call from
+       function to procedure; adapt caller.
+
+2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch5.adb, exp_disp.adb, exp_util.adb, par-ch4.adb,
+       sem_ch13.adb: Remove extra space before THEN that occurs at the
+       end of a line.
+
+2022-01-07  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * expect.c (__gnat_waitpid): Use macros WIFEXITED, WEXITSTATUS,
+       WIFSIGNALED, WTERMSIG, WIFSTOPPED, WSTOPSIG to get exit status
+       or signal that caused the child process to terminate/stop.  Do
+       not process exit status in case of error in waitpid call.
+       * adaint.c (__gnat_kill): Use of GenerateConsoleCtrlEvent is
+       removed in Windows variant as it actually is not working and was
+       terminating the calling process.  Set signal number into exit
+       code parameter of TerminateProcess to work the same like in
+       Linux.
+
+2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch5.adb (Expand_N_Case_Statement): Remove explicit
+       expansion.
+
+2022-01-07  Etienne Servais  <servais@adacore.com>
 
-2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Update -gnatwr documentation.
+       * gnat_ugn.texi: Regenerate.
 
-       * 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.
+2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+       * exp_unst.adb (Unnest_Subprogram): Sync comment with the
+       current code.
 
-       * 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.
+2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+       * exp_ch4.adb (Raise_Accessibility_Error): Move exception name
+       to the message string; move << control characters to the end,
+       for consistency.
+       * sem_ch6.adb (Analyze_Function_Return): Likewise.
+       * sem_util.adb (Compile_Time_Constraint_Error): Likewise.
+       * gcc-interface/decl.c (gnat_to_gnu_entity): Remove quotes
+       around Storage_Error.
+       * gcc-interface/trans.c (gnat_to_gnu): Remove quotes around
+       Constraint_Error.
 
-       * sem_attr.adb (Eval_Attribute) <Attribute_Machine>: Use
-       Round_Even instead of Round in the call to the Machine routine.
+2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-04-29  Bob Duff  <duff@adacore.com>
+       * errout.adb (Error_Msg): Move warning suppression code from
+       Error_Msg_NLE
+       (Error_Msg_NLE): Warning suppression is now done by the internal
+       call to Error_Msg.
 
-       * sem_attr.adb (Analyze_Attribute): Change "$" to "&".
-       Otherwise, Errout will trip over an uninitialized (invalid)
-       variable (Error_Msg_Unit_1).
+2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+       * exp_ch3.adb (Expand_N_Object_Declaration): Remove unnecessary
+       guards.
+       * exp_ch4.adb (Expand_N_If_Expression): Likewise; clarify comment.
+       * exp_ch5.adb (Expand_N_If_Statement,
+       Expand_Iterator_Loop_Over_Container): Likewise.
+       * exp_ch9.adb (Expand_N_Task_Type_Declaration): Remove redundant
+       guard.
+       * freeze.adb (Freeze_All_Ent): Reduce scope of a local variable.
 
-       * 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.
+2022-01-07  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-04-29  Yannick Moy  <moy@adacore.com>
+       * exp_ch3.adb (Build_Init_Procedure): Remove unnecessary guard.
+       * exp_disp.adb (Make_DT): Likewise.
+       * sem_ch12.adb (Analyze_Associations): Likewise.
 
-       * 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.
+2022-01-07  Etienne Servais  <servais@adacore.com>
 
-2021-04-29  Yannick Moy  <moy@adacore.com>
+       * sem_res.adb (Resolve_Op_Concat_Arg): Check range when
+       concatenating scalars.
 
-       * 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.
+2022-01-07  Bob Duff  <duff@adacore.com>
 
-2021-04-29  Justin Squirek  <squirek@adacore.com>
+       * treepr.adb (Print_Node_Ref): Change "not Is_Array_Type" to
+       "Is_Discrete_Type".
 
-       * 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>
+2022-01-07  Richard Kenner  <kenner@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.
+       * libgnat/g-spipat.ads (Boolean_Func, Natural_Func,
+       VString_Func): Mark as Favor_Top_Level.
+       * sem_ch13.adb (Validate_Unchecked_Conversion): Avoid using
+       internal representation if Unchecked_Conversion between
+       an access to subprogram and System.Address within the same unit.
 
-2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+2022-01-07  Bob Duff  <duff@adacore.com>
 
-       * sem_ch8.adb (Analyze_Object_Renaming): Update check for
-       AI12-0401.
+       * treepr.adb (Print_Node_Ref): Print the value if available.
 
-2021-04-29  Patrick Bernardi  <bernardi@adacore.com>
+2022-01-07  Richard Kenner  <kenner@adacore.com>
 
-       * libgnat/s-stoele.ads (Storage_Offset): Cleanup comment.
+       * sem_util.ads, sem_util.adb (Get_Fullest_View): Add option to
+       not recurse and return the next-most-fullest view.
 
-2021-04-29  Gary Dismukes  <dismukes@adacore.com>
+2022-01-07  Bob Duff  <duff@adacore.com>
 
-       * 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.
+       * sem_ch10.adb (Check_Redundant_Withs): Add a warning if a
+       library unit with's its own ancestor. Note that this warning is
+       not triggered for something like "with P.R;" in P.Q, because
+       there the "with P;" is considered implicit.
+       * fname-sf.adb, libgnarl/s-stusta.adb, libgnarl/s-tasdeb.ads,
+       libgnat/a-calfor.adb, libgnat/a-tiboio.adb,
+       libgnat/a-wwboio.adb, libgnat/a-zzboio.adb, libgnat/i-cobol.adb,
+       libgnat/s-bitops.adb, libgnat/s-bitops.ads,
+       libgnat/s-direio.adb, libgnat/s-dwalin.adb,
+       libgnat/s-geveop.adb, libgnat/s-mmosin__unix.adb,
+       libgnat/s-os_lib.adb, libgnat/s-os_lib.ads,
+       libgnat/s-pooglo.ads, libgnat/s-secsta.adb,
+       libgnat/s-shasto.adb, libgnat/s-stausa.ads,
+       libgnat/s-stratt.ads, libgnat/s-ststop.adb: Remove with of
+       parent.
+       * sinfo.ads: Minor comment fix.
 
-2021-04-29  Joel Brobecker  <brobecker@adacore.com>
+2022-01-07  Bob Duff  <duff@adacore.com>
 
-       * 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.
+       * osint-m.adb: Remove with_clause and pragma.
 
-2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-06  Bob Duff  <duff@adacore.com>
 
-       * 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.
+       * sem_res.adb (Resolve_Range): Warn on null range, unless we are
+       inside a generic unit or an instance thereof.
+       * sem_ch3.adb (Analyze_Subtype_Indication): Minor: avoid double
+       negative.
 
-2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
 
-       * eval_fat.adb (Succ): Use Ureal_Half in a couple of places.
+       * errout.adb (Adjust_Name_Case): Remove unnecessary declare
+       block.
 
-2021-04-29  Ed Schonberg  <schonberg@adacore.com>
+2022-01-06  Yannick Moy  <moy@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.
+       * libgnat/a-ngcoar.adb: Add pragma to ignore assertions in
+       instance.
+       * libgnat/a-ngrear.adb: Likewise.
+       * libgnat/s-gearop.adb: Prove implementation is free of runtime
+       errors.
+       * libgnat/s-gearop.ads: Add contracts to protect against runtime
+       errors in the generic part.
 
-2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-06  Piotr Trojanek  <trojanek@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.
+       * errout.adb (Remove_Warning_Messages): Use traversal procedure
+       instead of traversal function, since we discard status of each
+       step anyway.
 
-2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-06  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.
+       * exp_ch4.adb (Expand_Concatenate): There is no reason for using
+       declaring, raising and catching an exception; a simple return
+       statement is enough.
 
-2021-04-29  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
 
-       * doc/gnat_rm/implementation_defined_attributes.rst: Change all
-       occurrences of "permissible prefix" to "allowed prefix", for
-       consistency.
-       * gnat_rm.texi: Regenerate.
+       * sem_eval.adb (Eval_Arithmetic_Op): Add Loc parameter to all
+       calls to Apply_Compile_Time_Constraint_Error related to division
+       by zero.
 
-2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-06  Piotr Trojanek  <trojanek@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.
+       * errout.adb (Remove_Warning_Messages): Remove unnecessary guard.
+       * exp_util.adb (Kill_Dead_Code): Likewise.
+       * par_sco.adb (Traverse_Declarations_Or_Statements): Likewise.
+       * sem_ch3.adb (Build_Derived_Record_Type): Likewise.
+       * sem_ch4.adb (Traverse_Interfaces): Likewise.
+       * sem_eval.adb (Traverse_Interfaces): Likewise.
+       * sem_util.adb (Collect_Interfaces): Likewise.
+       (Has_Non_Null_Statements, Side_Effect_Free_Statements):
+       Likewise; turn into WHILE loops, for consistency.
 
-2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-06  Etienne Servais  <servais@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.
+       * sem_type.adb (Full_View_Covers): Fix typo.
 
-2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+2022-01-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * debug_a.adb (Debug_Output_Astring): Remove obsolete comment.
+       * sem_ch12.adb (Insert_Freeze_Node_For_Instance): When going to
+       the outer level, do not jump over following instantiations in
+       the list.
 
-2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_attr.adb (Check_Image_Type): Protect against empty
-       Image_Type.
+       * err_vars.ads (Warn_On_Instance): Remove; it was a relic from
+       the previous handling of warning in instances that was removed
+       decades ago.
 
-2021-04-29  Arnaud Charlet  <charlet@adacore.com>
+2022-01-06  Piotr Trojanek  <trojanek@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.
+       * errout.adb (Error_Msg_Internal): Reorder words.
+       * erroutc.ads (Is_Warning_Msg): Add closing paren.
+       * sem_util.adb (Compile_Time_Constraint_Error): Fix casing.
 
-2021-04-29  Gary Dismukes  <dismukes@adacore.com>
+2022-01-06  Piotr Trojanek  <trojanek@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).
+       * sem_res.adb (Resolve_String_Literal): Simplify pointer
+       arithmetic.
 
-2021-04-29  Yannick Moy  <moy@adacore.com>
+2022-01-06  Piotr Trojanek  <trojanek@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.
+       * sem_res.adb (Resolve_String_Literal): Avoid unnecessary
+       conversions inside "<" and ">" bodies.
 
-2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
 
-       * sem_ch13.adb, sem_util.adb: Fix style.
+       * checks.adb (Null_Exclusion_Static_Checks,
+       Selected_Range_Checks): Fix style.
 
-2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * nlists.ads (List_Length): Adapt comment to match the
-       behaviour.
+       * sem_ch8.adb (Analyze_Package_Renaming): Do not check for Text_IO
+       special units when the name of the renaming is a generic instance,
+       which is the case for package instantiations in the GNAT model.
 
-2021-04-28  Arnaud Charlet  <charlet@adacore.com>
+2022-01-06  Steve Baird  <baird@adacore.com>
 
-       * sem_eval.adb (Eval_Selected_Component): Only consider compile
-       time known aggregates.
+       * sem_util.adb (Build_Discriminant_Reference): In the unexpected
+       case where we previously would fail an assertion, we instead
+       revert to the old behavior.
 
-2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-06  Steve Baird  <baird@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.
+       * sem_util.adb (Build_Actual_Subtype_Of_Component): Define a new
+       local function, Build_Discriminant_Reference, and call it in
+       each of the three cases where Make_Selected_Component was
+       previously being called to construct a discriminant reference (2
+       in Build_Actual_Array_Constraint and 1 in
+       Build_Actual_Record_Constraint). Instead of unconditionally
+       using the passed-in object name as the prefix for the new
+       selected component node, this new function checks to see if
+       perhaps a prefix of that name should be used instead.
 
-2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-06  Etienne Servais  <servais@adacore.com>
 
-       * inline.adb (Formal_Is_Used_Once): Refine type of the counter
-       variable; remove redundant assignment.
+       * atree.adb: Fix typo.
+       * einfo.ads: Likewise.
+       * exp_aggr.adb: Likewise.
+       * exp_ch6.adb: Likewise.
+       * exp_ch7.adb: Likewise.
+       * exp_ch9.adb: Likewise.
+       * exp_prag.adb: Likewise.
+       * exp_unst.adb: Likewise.
+       * exp_unst.ads: Likewise.
+       * exp_util.adb: Likewise.
+       * par-endh.adb: Likewise.
+       * par.adb: Likewise.
+       * restrict.adb: Likewise.
+       * sem.ads: Likewise.
+       * sem_ch4.adb: Likewise.
+       * sem_ch5.adb: Likewise.
+       * sem_ch6.adb: Likewise.
+       * sem_ch8.adb: Likewise.
+       * sem_ch12.adb: Likewise.
+       * sem_ch13.adb: Likewise.
+       * sem_dim.adb: Likewise.
+       * sem_elab.adb: Likewise.
+       * sem_prag.adb: Likewise.
+       * sem_res.adb: Likewise.
+       * sem_util.adb: Likewise.
+       * sem_util.ads: Likewise.
+       * sinfo.ads: Likewise.
+       * sprint.adb: Likewise.
+       * urealp.adb: Likewise.
 
-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.
+2022-01-06  Justin Squirek  <squirek@adacore.com>
+
+       * exp_ch3.adb (Build_Assignment): Replace current instance of
+       type with Init_Proc formal.
+       * sem_attr.adb (OK_Self_Reference): Handle recognition of
+       Current_Instance to detect certain expansion.
+       * sem_ch4.adb (Analyze_One_Call): Set actual's type when the
+       actual in question is a current instance and its corresponding
+       formal is an incomplete type.
+       * sem_util.adb (Is_Current_Instance): Add check for incomplete
+       views and add comment.
+
+2022-01-06  Bob Duff  <duff@adacore.com>
+
+       * libgnat/s-rident.ads (No_Tagged_Type_Registration): New
+       restriction identifier.
+       * restrict.ads (Implementation_Restriction): Add restriction.
+       * exp_ch7.adb (Process_Declarations): Suppress
+       tagged-type-related finalization actions if the restriction is
+       active.  Call RTE_Available last.
+       * exp_disp.adb (Make_DT): Likewise.
+       * exp_util.adb (Requires_Cleanup_Actions): Return False for a
+       tagged type declaration if No_Tagged_Type_Registration is
+       active.
+       * sem_attr.adb (Check_Stream_Attribute): Check restriction
+       No_Tagged_Type_Registration.
+       * libgnat/a-except.ads (Null_Occurrence): Minor: Initialize, to
+       avoid stopping at a warning in gdb.
+       * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
+       Document new restriction.
+       * gnat_rm.texi: Regenerate.
 
-2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-06  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.
+       * par-ch4.adb (P_Simple_Expression): Reuse Null_String_Id.
+       * prep.adb (Parse_Def_File): Likewise; remove Empty_String.
 
-2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-06  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * inline.adb (Do_Reset_Calls): Now an instance of Traverse_Proc.
+       * stand.ads (Any_Access): Delete.
+       (Universal_Access): New entity.
+       * einfo.ads: Remove obsolete reference to Any_Access.
+       * gen_il-gen-gen_entities.adb: Likewise.
+       * cstand.adb (Create_Standard): Do not create Any_Access and create
+       Universal_Access as a full type instead.
+       * errout.adb (Set_Msg_Insertion_Type_Reference): Do not deal with
+       Any_Access and deal with Universal_Access instead.
+       * sem_ch3.adb (Analyze_Object_Declaration): Replace Any_Access with
+       Universal_Access.
+       * sem_ch4.adb (Analyze_Null): Likewise.
+       (Find_Non_Universal_Interpretations): Likewise.
+       (Find_Equality_Types.Try_One_Interp): Likewise and avoid shadowing
+       by renaming a local variable of the same name.
+       * sem_res.adb (Make_Call_Into_Operato): Likewise.
+       (Resolve_Equality_Op): Likewise.
+       * sem_type.adb (Covers): Likewise.
+       (Specific_Type): Likewise.
 
-2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-06  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.
+       * treepr.adb (Destroy): Prevent spurious check from CodePeer.
 
-2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-06  Yannick Moy  <moy@adacore.com>
 
-       * sem_ch13.adb (Analyze_Aspect_Static): Refactor to have a
-       single check for the expression being present; adapt comments.
+       * libgnat/s-exponu.adb (Exponu): Add annotation.
 
-2021-04-28  Piotr Trojanek  <trojanek@adacore.com>
+2022-01-06  Justin Squirek  <squirek@adacore.com>
 
-       * sem_ch13.adb (Analyze_Aspect_Static): Use aspect name in the
-       error message.
+       * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Add comments
+       regarding special handling of components which depend on
+       discriminants.
+       * exp_dist.adb (Build_From_Any_Function): Add Real_Rep actual
+       for calls to Has_Stream_Attribute_Definition.
+       (Build_To_Any_Function): Likewise.
+       (Build_TypeCode_Function): Likewise.
+       * freeze.adb (Freeze_Entity): Add missing comment for Test_E.
+       * libgnat/s-utf_32.adb: Remove disabled warning comments and
+       temporarily inserted pragma warnings.  Remove very old (2006 and
+       2012) comments about bootstrapping older versions.
+       * par.adb (P_Identifier): Add new parameter Force_Msg.
+       * par-ch2.adb (P_Identifier): Restructure and clean up function.
+       * par-ch3.adb (P_Defining_Identifier): Remove code duplication
+       for parsing identifiers.
+       * sem_attr.adb (Stream_Attribute_Available): Add missing
+       comments and add Real_Rep actual for calls to
+       Has_Stream_Attribute_Definition.
+       * sem_cat.adb (Has_Read_Write_Attribute): Add Real_Rep actual
+       for calls to Has_Stream_Attribute_Definition.
+       (Has_Stream_Attribute_Definition): Remove local Real_Rep and fix
+       recursive calls. Add default value for Real_Rep.
+       * sem_cat.ads (Has_Stream_Attribute_Definition): Add new out
+       parameter "Real_Rep".
+       * sem_type.adb (Add_Entry): Add condition to avoid passing
+       non-function calls to Function_Interp_Has_Abstract_Op.
+       (Function_Interp_Has_Abstract_Op): Add missing comments and
+       remove check for Is_Overloadable.
+       * sem_util.adb (Derivation_Too_Early_To_Inherit): Remove
+       duplicated code.
+
+2022-01-06  Javier Miranda  <miranda@adacore.com>
+
+       * contracts.adb (Restore_Original_Selected_Component): New
+       subprogram that traverses a preanalyzed expression searching for
+       dispatching calls to functions whose original node was a
+       selected component, and replacing them with their original node.
+       This functionality is required because the preanalyis of
+       dispatching calls using the Object.Operation notation transforms
+       such calls, and we need the original condition to properly
+       inherit and extend the condition expression on tagged type
+       derivations.  This functionality was previously provided by the
+       routine Install_Original_Selected_Component (as part of
+       inheriting conditions); now it is performed as part of the
+       preanalysis of the condition, thus avoiding repeatedly
+       installing and restoring such nodes.
+       (Install_Original_Selected_Component): Removed.
+       (Restore_Dispatching_Calls): Removed.
+
+2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * treepr.adb (Visit_Node): Simplify repeated call to
+       Next_Entity.
+
+2022-01-06  Piotr Trojanek  <trojanek@adacore.com>
+
+       * treepr.ads (Treepr, Print_Tree_List, Print_Tree_Elist): Fix
+       style in comments.
+       * treepr.adb (Serial_Numbers): Hash table instance.
+       (Hash): Hashing routine.
+       (Print_Field): Fix style.
+       (Print_Init): Adapt to simple hash table.
+       (Print_Term): Likewise.
+       (Serial_Numbers): Likewise.
+       (Set_Serial_Number): Likewise.
+
+2022-01-06  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-expmod.adb: Mark in SPARK. Add ghost code for proof.
+       * libgnat/s-expmod.ads: Mark in SPARK. Add ghost specifications.
+
+2022-01-06  Yannick Moy  <moy@adacore.com>
+
+       * libgnat/s-explllu.ads: Mark in SPARK.
+       * libgnat/s-expllu.ads: Mark in SPARK.
+       * libgnat/s-exponu.adb: Add loop invariants and needed
+       assertions.
+       * libgnat/s-exponu.ads: Add functional contract.
+       * libgnat/s-expuns.ads: Mark in SPARK.
+
+2022-01-05  Steve Baird  <baird@adacore.com>
+
+       * exp_ch5.adb (Finish_Binding_Object_Declaration): Fix a bug
+       that was introduced in the previous commit.  The previous
+       version initialized a Boolean constant Declare_Copy before the
+       variable Decl had been initialized properly.
+
+2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * sem_prag.adb (Adjust_External_Name_Case): Use membership test.
+
+2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch3.adb (Make_Controlling_Function_Wrappers): For
+       GNATprove build the wrapper as an expression function.
+
+2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_ch3.ads (Make_Controlling_Function_Wrappers): Move
+       declaration from body to spec, so it can be called by
+       SPARK-specific expansion.
+       * exp_ch3.adb (Make_Controlling_Function_Wrappers): Likewise.
+       * exp_spark.adb (SPARK_Freeze_Type): Enable expansion of
+       wrappers for function with controlling result types.
+
+2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_dbug.adb, sem_dim.adb: Replace Add_Str_To_Name_Buffer with
+       Add_Char_To_Name_Buffer.
 
-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.
+2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
 
-2021-04-28  Arnaud Charlet  <charlet@adacore.com>
+       * gnatls.adb (Gnatls): Use Name_Find function.
+       * targparm.adb (Get_Target_Parameters): Likewise.
 
-       * einfo.adb (Discriminant_Constraint): Refine assertion.
+2022-01-05  Bob Duff  <duff@adacore.com>
 
-2021-04-28  Gary Dismukes  <dismukes@adacore.com>
+       * repinfo.adb (List_Entities): The code was assuming that if we
+       encounter a package in the current scope, then it must be
+       a (physically) nested package.  That was wrong, because it could
+       be a child package.  Avoid recursing into child packages; they
+       have not been annotated with representation information, and
+       -gnatR2 queries that information.
 
-       * 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).
+2022-01-05  Marc Poulhiès  <poulhies@adacore.com>
 
-2021-04-28  Ed Schonberg  <schonberg@adacore.com>
+       * libgnat/s-sopco3.ads, libgnat/s-sopco3.adb: Remove.
+       * libgnat/s-sopco4.ads, libgnat/s-sopco4.adb: Remove.
+       * libgnat/s-sopco5.ads, libgnat/s-sopco5.adb: Remove.
+       * libgnat/s-strops.ads, libgnat/s-strops.adb: Remove.
+       * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove occurences of removed
+       units.
+       * gcc-interface/Make-lang.in (ada/sdefault.o): Remove
+       dependencies on removed units.
+       (GNATBIND_OBJS): Remove occurences of removed units.
 
-       * 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>
+2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * 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.
-
-2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
-
-       * 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.
+       * exp_ch3.adb (Build_Dcheck_Function): Remove extra whitespace.
+       * libgnarl/s-taskin.adb (Initialize_ATCB): Likewise.
 
-2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * 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.
+       * exp_attr.adb (Build_Array_VS_Func): Remove explicit "IN" in
+       spec of the generated array validation function; it was
+       redundant, just like it would be in a user-written code.
 
-2021-04-28  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * 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.
+       * exp_ch4.adb (Expand_N_Op_Ne): Fix whitespace.
+       * sem_dim.adb (Expand_Put_Call_With_Symbol): Likewise.
+       (Reduce): Likewise.
 
-2021-04-20  Martin Liska  <mliska@suse.cz>
+2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * gnatvsn.ads: Bump Library_Version to 12.
+       * exp_aggr.adb (Two_Pass_Aggregate_Expansion): Fix whitespace.
+       * libgnat/a-cofuve.ads (Add): Likewise.
+       * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Likewise.
 
-2021-04-13  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * 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.
+       * exp_ch3.adb (Make_Eq_Body, Make_Neq_Body,
+       Make_Predefined_Primitive_Eq_Spec,
+       Make_Predefined_Primitive_Specs): Fix whitespace.
 
-2021-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
+2022-01-05  Etienne Servais  <servais@adacore.com>
 
-       * gnat_ugn.texi (Top): Avoid invalid "up" link.
+       * sem_ch3.adb (Analyze_Component_Declaration): Rework condition
+       to build subtypes.
+       (Analyze_Object_Declaration): Likewise.
+       (Should_Build_Subtype): New.
 
-2021-03-29  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Yannick Moy  <moy@adacore.com>
 
-       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.
+       * libgnat/s-arit128.adb: Mark in SPARK.
+       * libgnat/s-arit128.ads: Add functional contracts.
 
-2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Piotr Trojanek  <trojanek@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.
+       * sem_util.adb (String_From_Numeric_Literal): Simplify using
+       membership tests and ranges; fix whitespace.
 
-2021-03-09  Mikael Pettersson  <mikpelinux@gmail.com>
+2022-01-05  Yannick Moy  <moy@adacore.com>
 
-       * raise-gcc.c: On Cygwin include mingw32.h to prevent
-       windows.h from including x86intrin.h or emmintrin.h.
+       * libgnat/s-expint.ads: Mark in SPARK. Adapt to change to
+       package.
+       * libgnat/s-explli.ads: Likewise.
+       * libgnat/s-expllli.ads: Likewise.
+       * libgnat/s-expont.adb: Add lemmas and ghost code.
+       * libgnat/s-expont.ads: Add functional contract.
 
-2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Piotr Trojanek  <trojanek@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.
+       * exp_disp.adb (Gen_Parameters_Profile): Remove redundant guard.
 
-2021-03-02  Mikael Pettersson  <mikpelinux@gmail.com>
+2022-01-05  Claire Dross  <dross@adacore.com>
 
-       PR bootstrap/98590
-       * cstreams.c: Ensure fileno_unlocked() is visible on Cygwin.
+       * libgnat/s-valuti.ads (Starts_As_Exponent_Format_Ghost): Ghost
+       function to determine if a string is recognized as something
+       which might be an exponent.
+       (Is_Opt_Exponent_Format_Ghost): Ghost function to determine if a
+       string has the correct format for an optional exponent.
+       (Scan_Exponent): Use ghost functions to factorize contracts.
 
-2021-03-02  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Bob Duff  <duff@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.
+       * exp_util.ads (Get_Current_Value_Condition): Belt: Add a
+       postcondition that Val /= Var.
+       * sem_util.adb (Known_Null): Suspenders: Raise Program_Error if
+       Get_Current_Value_Condition returned the same value. This will
+       be enabled even without assertions, because infinite recursion
+       is a nuisance -- better to crash if this bug ever occurs.
 
-2021-03-02  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       PR ada/99020
-       * sem_ch3.adb (Build_Discriminated_Subtype): Set the Cloned_Subtype
-       only if the type is not private.
+       * exp_ch3.adb (Make_Null_Procedure_Specs): Simplify by reusing
+       Copy_Subprogram_Spec.
+       * sem_util.ads (Copy_Subprogram_Spec): Add New_Sloc parameter.
+       * sem_util.adb (Copy_Subprogram_Spec): Pass New_Sloc to
+       New_Copy_Tree.
 
-2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>
+2022-01-05  Yannick Moy  <moy@adacore.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
+       * libgnat/s-exnint.ads: Mark in SPARK. Adapt to change to
+       package.
+       * libgnat/s-exnlli.ads: Likewise.
+       * libgnat/s-exnllli.ads: Likewise.
+       * libgnat/s-exponn.adb: Add lemmas and ghost code. Secial case
+       value zero as Left or Right to simplify proof.
+       * libgnat/s-exponn.ads: Transform the generic function into a
+       generic package with a function inside. Add a functional
+       contract.
 
-2021-02-12  Arnaud Charlet  <charlet@adacore.com>
+2022-01-05  Piotr Trojanek  <trojanek@adacore.com>
 
-       * repinfo.ads, repinfo.adb (*SO_Ref*): Restore.
+       * sem_ch12.adb (Instantiate_Formal_Subprogram): Remove redundant
+       call to Set_Defining_Unit_Name; a similar call is done few lines
+       below.
 
-2021-02-03  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Piotr Trojanek  <trojanek@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.
+       * exp_ch3.adb (Make_Controlling_Function_Wrappers): Create
+       distinct copies of parameter lists for spec and body with
+       Copy_Parameter_List; cleanup.
+       (Make_Null_Procedure_Specs): Fix style in comments; remove a
+       potentially unnecessary initialization of a local variable.
 
-2021-02-03  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Bob Duff  <duff@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.
+       * einfo-utils.ads, einfo-utils.adb (Renamed_Entity Alias):
+       Change Node_Id to Entity_Id.
 
-2021-01-26  Marius Hillenbrand  <mhillen@linux.ibm.com>
+2022-01-05  Piotr Trojanek  <trojanek@adacore.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.
+       * sem_ch12.ads (Build_Function_Wrapper, Build_Operator_Wrapper):
+       Remove unreferenced spec.
+       * sem_ch12.adb (Build_Function_Wrapper, Build_Operator_Wrapper):
+       Remove dead bodies.
 
-2021-01-25  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Yannick Moy  <moy@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.
+       * libgnat/s-aridou.adb: Apply replacement.
 
-2021-01-19  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Yannick Moy  <moy@adacore.com>
 
-       PR ada/98740
-       * gcc-interface/trans.c (add_decl_expr): Always mark TYPE_ADA_SIZE.
+       * libgnat/s-aridou.adb (Lemma_Word_Commutation): Fix for
+       instances with other values of Single_Size.
 
-2021-01-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+2022-01-05  Marc Poulhiès  <poulhies@adacore.com>
 
-       PR ada/98595
-       * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <riscv*-*-rtems*>: Use
-       wraplf version of Aux_Long_Long_Float.
+       * doc/gnat_rm/implementation_defined_pragmas.rst (Compiler_Unit)
+       (Compiler_Unit_Warning): Remove.
+       * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate.
+       * libgnat/g-dynhta.ads: Add comment indicating this unit is
+       built during stage1.
+       * libgnat/g-dyntab.ads: Likewise.
+       * libgnat/g-graphs.ads: Likewise.
+       * libgnat/g-lists.ads: Likewise.
+       * libgnat/g-sets.ads: Likewise.
+       * libgnat/gnat.ads: Likewise.
+       * libgnat/s-pehage.ads: Likewise.
+       * libgnat/s-resfil.ads: Likewise.
+       * libgnat/s-rident.ads: Likewise.
+       * libgnat/s-utf_32.ads: Likewise.
+       * errout.ads: Update comment.
+       * opt.ads (Opt): Remove Compiler_Unit.
+       * par-ch5.adb (All_Pragmas): Remove call to Check_Compiler_Unit.
+       * sem_prag.adb (Analyze_Pragma): Likewise.
+       * sem_ch4.adb (Non_Static_Choice_Error, Analyze_If_Expression)
+       (Analyze_Set_Membership, Record_Interp): Likewise.
+       * sem_ch11.adb (Analyze_Raise_Expression): Likewise.
+       * sem_ch6.adb: Remove Restric package reference.
+       (Analyze_Extended_Return_Statement): Remove call to
+       Check_Compiler_Unit.
+       * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings):
+       Remove handling of Pragma_Compiler_Unit[_Warning}.
+       * restrict.adb (Check_Compiler_Unit): Remove both.
+       * restrict.ads: Likewise.
+       * snames.ads-tmpl (Pragma_Id): Remove
+       Pragma_Compiler_Unit[_Warning].
+       * libgnat/a-assert.ads: Remove pragma Compiler_Unit_Warning.
+       * libgnat/a-chlat1.ads: Likewise.
+       * libgnat/a-elchha.adb: Likewise.
+       * libgnat/a-elchha.ads: Likewise.
+       * libgnat/a-ioexce.ads: Likewise.
+       * libgnat/a-strhas.ads: Likewise.
+       * libgnat/g-byorma.adb: Likewise.
+       * libgnat/g-byorma.ads: Likewise.
+       * libgnat/g-dyntab.adb: Likewise.
+       * libgnat/g-heasor.ads: Likewise.
+       * libgnat/g-hesora.adb: Likewise.
+       * libgnat/g-hesora.ads: Likewise.
+       * libgnat/g-htable.adb: Likewise.
+       * libgnat/g-htable.ads: Likewise.
+       * libgnat/g-spchge.adb: Likewise.
+       * libgnat/g-spchge.ads: Likewise.
+       * libgnat/g-speche.adb: Likewise.
+       * libgnat/g-speche.ads: Likewise.
+       * libgnat/g-table.ads: Likewise.
+       * libgnat/g-u3spch.adb: Likewise.
+       * libgnat/g-u3spch.ads: Likewise.
+       * libgnat/interfac.ads: Likewise.
+       * libgnat/s-addope.adb: Likewise.
+       * libgnat/s-addope.ads: Likewise.
+       * libgnat/s-assert.adb: Likewise.
+       * libgnat/s-assert.ads: Likewise.
+       * libgnat/s-bitops.adb: Likewise.
+       * libgnat/s-bitops.ads: Likewise.
+       * libgnat/s-carun8.adb: Likewise.
+       * libgnat/s-carun8.ads: Likewise.
+       * libgnat/s-casuti.adb: Likewise.
+       * libgnat/s-casuti.ads: Likewise.
+       * libgnat/s-conca2.adb: Likewise.
+       * libgnat/s-conca2.ads: Likewise.
+       * libgnat/s-conca3.adb: Likewise.
+       * libgnat/s-conca3.ads: Likewise.
+       * libgnat/s-conca4.adb: Likewise.
+       * libgnat/s-conca4.ads: Likewise.
+       * libgnat/s-conca5.adb: Likewise.
+       * libgnat/s-conca5.ads: Likewise.
+       * libgnat/s-conca6.adb: Likewise.
+       * libgnat/s-conca6.ads: Likewise.
+       * libgnat/s-conca7.adb: Likewise.
+       * libgnat/s-conca7.ads: Likewise.
+       * libgnat/s-conca8.adb: Likewise.
+       * libgnat/s-conca8.ads: Likewise.
+       * libgnat/s-conca9.adb: Likewise.
+       * libgnat/s-conca9.ads: Likewise.
+       * libgnat/s-crc32.adb: Likewise.
+       * libgnat/s-crc32.ads: Likewise.
+       * libgnat/s-crtl.ads: Likewise.
+       * libgnat/s-excdeb.adb: Likewise.
+       * libgnat/s-excdeb.ads: Likewise.
+       * libgnat/s-except.ads: Likewise.
+       * libgnat/s-exctab.adb: Likewise.
+       * libgnat/s-exctab.ads: Likewise.
+       * libgnat/s-finmas.ads: Likewise.
+       * libgnat/s-htable.adb: Likewise.
+       * libgnat/s-htable.ads: Likewise.
+       * libgnat/s-mastop.adb: Likewise.
+       * libgnat/s-mastop.ads: Likewise.
+       * libgnat/s-memory.adb: Likewise.
+       * libgnat/s-memory.ads: Likewise.
+       * libgnat/s-os_lib.ads: Likewise.
+       * libgnat/s-parame.adb: Likewise.
+       * libgnat/s-parame.ads: Likewise.
+       * libgnat/s-parame__posix2008.ads: Likewise.
+       * libgnat/s-purexc.ads: Likewise.
+       * libgnat/s-resfil.adb: Likewise.
+       * libgnat/s-restri.adb: Likewise.
+       * libgnat/s-restri.ads: Likewise.
+       * libgnat/s-secsta.adb: Likewise.
+       * libgnat/s-secsta.ads: Likewise.
+       * libgnat/s-soflin.adb: Likewise.
+       * libgnat/s-soflin.ads: Likewise.
+       * libgnat/s-sopco3.adb: Likewise.
+       * libgnat/s-sopco3.ads: Likewise.
+       * libgnat/s-sopco4.adb: Likewise.
+       * libgnat/s-sopco4.ads: Likewise.
+       * libgnat/s-sopco5.adb: Likewise.
+       * libgnat/s-sopco5.ads: Likewise.
+       * libgnat/s-spsufi.ads: Likewise.
+       * libgnat/s-stache.adb: Likewise.
+       * libgnat/s-stache.ads: Likewise.
+       * libgnat/s-stalib.adb: Likewise.
+       * libgnat/s-stalib.ads: Likewise.
+       * libgnat/s-stoele.adb: Likewise.
+       * libgnat/s-stoele.ads: Likewise.
+       * libgnat/s-strcom.adb: Likewise.
+       * libgnat/s-strcom.ads: Likewise.
+       * libgnat/s-strhas.adb: Likewise.
+       * libgnat/s-string.adb: Likewise.
+       * libgnat/s-string.ads: Likewise.
+       * libgnat/s-strops.adb: Likewise.
+       * libgnat/s-strops.ads: Likewise.
+       * libgnat/s-ststop.adb: Likewise.
+       * libgnat/s-ststop.ads: Likewise.
+       * libgnat/s-traceb.adb: Likewise.
+       * libgnat/s-traceb.ads: Likewise.
+       * libgnat/s-traent.adb: Likewise.
+       * libgnat/s-traent.ads: Likewise.
+       * libgnat/s-utf_32.adb: Likewise.
+       * libgnat/s-unstyp.ads: Likewise.
+       * libgnat/s-wchcnv.adb: Likewise.
+       * libgnat/s-wchcnv.ads: Likewise.
+       * libgnat/s-wchcon.adb: Likewise.
+       * libgnat/s-wchcon.ads: Likewise.
+       * libgnat/s-wchjis.adb: Likewise.
+       * libgnat/s-wchjis.ads: Likewise.
 
-2021-01-03  Eric Botcazou  <ebotcazou@adacore.com>
+2022-01-05  Arnaud Charlet  <charlet@adacore.com>
 
-       * gnatvsn.ads: Bump copyright year.
+       * osint.adb (File_Names_Equal): Declare To_Lower locally.
+       * osint.ads (Null_FD): New.
+       * fmap.adb, sinput-l.adb, targparm.adb: Adapt to changes above.
+       * switch-b.adb (Scan_Debug_Switches): Use Is_Regular_File to
+       simplify the bootstrap dependencies.
 
-2021-01-01  Jakub Jelinek  <jakub@redhat.com>
+2022-01-03  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>
-
-       * ChangeLog-2020: Rotate ChangeLog.  New file.
-
 \f
-Copyright (C) 2021 Free Software Foundation, Inc.
+Copyright (C) 2022 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright