2021-07-01 Eric Botcazou PR ada/101094 * exp_attr.adb (Get_Integer_Type): Return an integer type with the same signedness as the input type. 2021-06-29 Richard Kenner * sem_util.adb (Visit_Node): Add handling for N_Block_Statement with declarations. 2021-06-29 Piotr Trojanek * einfo-utils.adb (Unknown_Alignment): Simply negate the Known_ counterpart. (Unknown_Component_Bit_Offset): Likewise. (Unknown_Esize): Likewise. (Unknown_Normalized_First_Bit): Likewise. (Unknown_Normalized_Position): Likewise. (Unknown_Normalized_Position_Max): Likewise. (Unknown_RM_Size): Likewise. 2021-06-29 Boris Yakobowski * exp_ch4.adb (Expand_N_Op_Mod): Remove special case for mod -1 in CodePeer_Mode. 2021-06-29 Aleksandra Pasek * libgnat/s-objrea.adb (EM_AARCH64): New Constant. (Initialize): Handle EM_AARCH64 case. (Read_Address): Handle AARCH64 case. * libgnat/s-objrea.ads (Object_Arch): Add AARCH64 record component. 2021-06-29 Bob Duff * sem_ch13.adb (Analyze_Record_Representation_Clause): Call Set_Entity_With_Checks instead of Set_Entity, so we perform the check for correct casing. * style.adb (Check_Identifier): Minor comment improvement. Cleanup overly complicated code. 2021-06-29 Ed Schonberg * exp_aggr.adb (Convert_Aggr_In_Object_Decl): After expansion of the aggregate, the expression can be removed from the declaration, except if the object is class-wide, in which case the aggregate provides the actual type. In other cases the presence of the expression may lead to spurious freezing issue. * exp_ch3.adb (Expand_N_Object_Declaration): If the expression in the declaration is an aggregate with delayed expansion (as is the case for objects of a limited type, or a subsequent address specification) the aggregate must be resolved at this point. This resolution must not include expansion, because the expansion of the enclosing declaration will construct the necessary aggregate expansion. 2021-06-29 Piotr Trojanek * errout.ads (Adjust_Name_Case): Remove obsolete and now unused variant. * errout.adb (Adjust_Name_Case): Likewise; fix variant that uses a custom buffer to also use it for names in Standard_Location. 2021-06-29 Eric Botcazou * sem_ch12.adb (Freeze_Subprogram_Body): Add missing "freeze". (Install_Body): Likewise. 2021-06-29 Piotr Trojanek * adaint.c (__gnat_portable_spawn): Revert change that introduced setting of __gnat_in_child_after_fork. 2021-06-29 Patrick Bernardi * libgnarl/s-tasdeb.ads (Known_Tasks): Add Atomic_Components aspect. 2021-06-29 Doug Rupp * Makefile.rtl (x86_64-vx7r2) [EXTRA_GNATRTL_TASKING_OBJS]: Move i-vxinco.o out of RTP runtime. 2021-06-29 Claire Dross * libgnat/a-cfdlli.ads: Use pragma Assertion_Policy to disable pre and postconditions. * libgnat/a-cfhama.ads: Likewise. * libgnat/a-cfhase.ads: Likewise. * libgnat/a-cfinve.ads: Likewise. * libgnat/a-cforma.ads: Likewise. * libgnat/a-cforse.ads: Likewise. * libgnat/a-cofove.ads: Likewise. 2021-06-29 Piotr Trojanek * sem_util.ads (Get_Fullest_View): Refill comment; remove extra extra after period. * sem_util.adb (Get_Fullest_View): Fix style. 2021-06-29 Piotr Trojanek * sem_ch3.adb (Analyze_Declarations): Remove explicit check for missing, because a subsequent call to Is_Empty_List will detect them anyway. 2021-06-29 Piotr Trojanek * freeze.adb (Freeze_All): Simplify by reusing Is_Subprogram_Or_Entry. * sem_ch11.adb (Analyze_Handled_Statement): Likewise. 2021-06-29 Piotr Trojanek * sem_warn.adb (Warn_On_Overlapping_Actuals): Prevent cascaded errors once for the subprogram call, not for every pair of actual parameters. 2021-06-29 Piotr Trojanek * sem_ch3.adb (Is_Local_Type): Simplify by reusing Scope_Within. 2021-06-29 Gary Dismukes * sem_ch6.ads (Can_Override_Operator): Function declaration moved from package body to package spec. * sem_ch6.adb (Check_Overriding_Indicator): Now use test of whether the subprogram's Chars is an operator name, to handle cases of function instances whose entity is N_Defining_Identifier rather than N_Defining_Operator_Symbol. (Can_Override_Operator): Function declaration moved to package spec. Now use test of whether the subprogram's Chars is an operator name, to handle cases of function instances whose entity is N_Defining_Identifier rather than N_Defining_Operator_Symbol. * sem_ch8.adb (Analyze_Renamed_Subprogram): Check for possibility of an overridden predefined operator, and suppress the "not overriding" message in that case. 2021-06-29 Doug Rupp * Makefile.rtl: Add a new ifeq for vx7r2 shared gnatlib. 2021-06-29 Piotr Trojanek * exp_attr.adb (Build_Array_VS_Func): Restore uses of Validated_View. (Build_Record_VS_Func): Likewise. (Expand_N_Attribute_Reference): Likewise. * sem_util.adb (Validated_View): Behave as an identity function for arrays and scalars. 2021-06-29 Bob Duff * atree.adb, atree.ads (Parent, Set_Parent): Assert node is Present. (Copy_Parent, Parent_Kind): New helper routines. * gen_il-gen.adb: Add with clause. * nlists.adb (Parent): Assert Parent of list is Present. * aspects.adb, checks.adb, exp_aggr.adb, exp_ch6.adb, exp_util.adb, lib-xref-spark_specific.adb, osint.ads, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch6.adb, sem_dim.adb, sem_prag.adb, sem_res.adb, sem_util.adb, treepr.adb: Do not call Parent and Set_Parent on the Empty node. * libgnat/a-stwiun__shared.adb, libgnat/a-stzunb__shared.adb: Minor: Fix typos in comments. * einfo.ads: Minor comment update. * sinfo-utils.ads, sinfo-utils.adb (Parent_Kind, Copy_Parent): New functions. 2021-06-29 Eric Botcazou * repinfo-input.adb (Read_JSON_Stream): Fix typo. 2021-06-29 Eric Botcazou * rtsfind.ads (RE_Id): Change RE_Valid_Enumeration_Value_NN into RE_Valid_Value_Enumeration_NN. (RE_Unit_Table): Adjust to above renaming. * exp_imgv.adb (Expand_Valid_Value_Attribute): Likewise. * libgnat/s-valuen.ads (Invalid): Remove. (Value_Enumeration_Pos): Move to... * libgnat/s-valuen.adb (Value_Enumeration_Pos): ...here. Return -1 instead of Invalid. (Value_Enumeration): Compare against 0 instead of Invalid. (Valid_Enumeration_Value): Likewise. Rename to... (Valid_Value_Enumeration): ...this. * libgnat/s-vaenu8.ads (Valid_Enumeration_Value_8): Rename into... (Valid_Value_Enumeration_8): ...this. * libgnat/s-vaen16.ads (Valid_Enumeration_Value_16): Rename into... (Valid_Value_Enumeration_16): ...this. * libgnat/s-vaen32.ads (Valid_Enumeration_Value_32): Rename into... (Valid_Value_Enumeration_32): ...this. 2021-06-29 Bob Duff * einfo.ads (Component_Bit_Offset, Component_Size): Update documentation: Repinfo is the package where these negative values are documented. * einfo-utils.adb (Known_Component_Size, Known_Static_Component_Size, Unknown_Component_Size): Remove calls to Implementation_Base_Type, because Component_Size is an Impl_Base_Type_Only field (see Gen_Entities). * sem_ch13.ads, sem_ch13.adb (Check_Size): Do not set Esize and RM_Size. This is unnecessary in the case of Size. For Component_Size, it is wrong, because we would be setting the Esize and RM_Size of the component type. 2021-06-29 Pascal Obry * s-oscons-tmplt.c: Add some OS constants. 2021-06-29 Piotr Trojanek * sem_util.ads (Validated_View): Fix style in comment. * sem_util.adb (Validated_View): Rewrite in recursive style. 2021-06-29 Eric Botcazou * Make-generated.in (ada/stamp-gen_il): Ignore errors from running gen_il-main. 2021-06-29 Richard Kenner * gen_il-gen-gen_entities.adb (Record_Field_Kind, Allocatable_Kind): Add new abstract kinds. (Constant_Or_Variable_Kind): Likewise. (E_Constant, E_Variable, E_Loop_Parameter): Use them. (E_Discriminant, E_Component): Likewise. * gen_il-types.ads (type Opt_Type_Enum): Add them. 2021-06-29 Bob Duff * gen_il-gen.adb (Put_C_Type_And_Subtypes): Put the correct numbers. * gen_il-internals.ads, gen_il-internals.adb: (Pos): Remove this function. It was assuming that the order of the enumeration literals in Type_Enum is the same as the order of the generated types Node_Kind and Entity_Kind, which is not true. 2021-06-29 Piotr Trojanek * exp_attr.adb (Expand_N_Attribute_Reference): Explicitly use Validated_View for record objects. 2021-06-28 Martin Sebor * 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. 2021-06-21 Gary Dismukes * 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. 2021-06-21 Bob Duff * libgnat/s-valuen.ads (Value_Enumeration, Valid_Enumeration_Value): Inline. (Value_Enumeration_Pos): Add Pure_Function. 2021-06-21 Justin Squirek * 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 * 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 * 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 * 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 * 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 * 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 * 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. * gnat_rm.texi: Regenerate. 2021-06-21 Eric Botcazou * fe.h (Assume_No_Invalid_Values): Declare. * opt.ads (Assume_No_Invalid_Values): Add warning comment. 2021-06-21 Bob Duff * 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. 2021-06-21 Ghjuvan Lacambre * exp_ch9.adb (Build_Simple_Entry_Call): Add comment. * libgnat/s-rannum.adb (Random): Update comment. * libgnat/s-rannum.ads (Generator): Update comment. 2021-06-21 Piotr Trojanek * doc/gnat_rm/representation_clauses_and_pragmas.rst (Address Clauses): Fix unbalanced parens. * gnat_rm.texi: Regenerate. 2021-06-21 Ghjuvan Lacambre * 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. 2021-06-21 Ghjuvan Lacambre * 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. 2021-06-21 Eric Botcazou * 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. 2021-06-21 Piotr Trojanek * sem_util.adb (Indexed_Component_Bit_Offset): Return an unknown offset for components within multidimensional arrays; remove redundant parens. 2021-06-21 Piotr Trojanek * sem_util.adb (Find_Overlaid_Entity): Ignore references to components and discriminants. 2021-06-21 Doug Rupp * Makefile.rtl (aarch64-linux) [LIBGNAT_TARGET_PAIRS]: Add $(TRASYM_DWARF_UNIX_PAIRS). [EXTRA_GNAT_RTL_NONTASKING_OBJS]: Add $(TRASYM_DWARF_UNIX_OBJS) 2021-06-21 Gary Dismukes * 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. 2021-06-21 Piotr Trojanek * sem_util.adb (Denotes_Same_Object): Simplify handling of slices. 2021-06-21 Piotr Trojanek * sem_util.adb (Is_Object_Renaming): Rename from Is_Renaming; simplify; adapt callers. 2021-06-21 Frederic Konrad * Makefile.rtl: Compiles both static and dynamic libgnat for powerpc64-wrs-vxworks7r2. 2021-06-18 Gary Dismukes * 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. 2021-06-18 Bob Duff * 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. 2021-06-18 Piotr Trojanek * sem_util.adb (Denotes_Same_Object): Handle character literals just like integer literals. 2021-06-18 Piotr Trojanek * 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. 2021-06-18 Bob Duff * 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. 2021-06-18 Piotr Trojanek * 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. 2021-06-18 Bob Duff * sem_attr.adb (Eval_Attribute): For Enum_Lit'Size, use Enum_Type'Object_Size. 2021-06-18 Olivier Hainque * 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. 2021-06-18 Javier Miranda * 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; no longer needed. * treepr.adb (Image): Adding uppercase image of LSP_Subprogram. 2021-06-18 Arnaud Charlet * 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 * 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 * 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 * exp_util.adb (Expand_Sliding_Conversion): Move test of Is_Fixed_Lower_Bound_Subtype to an assertion. Exclude string literals from sliding expansion. 2021-06-18 Piotr Trojanek * sem_warn.adb (Warn_On_Overlapping_Actuals): Cleanup conditions related to Ada_Version. 2021-06-18 Piotr Trojanek * sem_util.adb (Address_Value): Simplify. 2021-06-18 Bob Duff * 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. 2021-06-18 Piotr Trojanek * sem_warn.adb (Warn_On_Overlapping_Actuals): Examine types of both formal parameters; refactor a complex detection of by-reference types. 2021-06-18 Arnaud Charlet * gnatcmd.adb: Fix handling of check and test commands. 2021-06-18 Gary Dismukes * doc/gnat_rm/implementation_defined_pragmas.rst: Add documentation for the array fixed-lower-bound feature. * gnat_rm.texi: Regenerate. 2021-06-18 Bob Duff * debug.adb: Document switch. * exp_aggr.adb: If -gnatd_g was given, then do not bump the limit to 500_000. 2021-06-18 Bob Duff * 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. 2021-06-18 Piotr Trojanek * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove dead branch for overlapping actuals in prefix notation. 2021-06-18 Eric Botcazou * sem_prag.adb (Process_Import_Or_Interface): Do not artificially record a possible modification for a constant. 2021-06-18 Arnaud Charlet * exp_ch6.adb (Expand_Call_Helper): Code cleanups. 2021-06-18 Arnaud Charlet * 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. 2021-06-18 Ghjuvan Lacambre * 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. * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Mention new -fdiagnostics-format option. * gnat_ugn.texi: Regenerate. 2021-06-18 Arnaud Charlet * sem_ch6.adb (Null_Exclusions_Match): Relax null exclusion mismatch check when Relaxed_RM_Semantics is set. 2021-06-18 Arnaud Charlet * 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 * 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 * 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 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Protect against no Primitive_Operations. 2021-06-17 Vadim Godunko * 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 * 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 * 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 * 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 => " instead of "Foo => <>". In the more general case, an expression (or a box) may be followed by "is ", 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. * gnat_rm.texi: Regenerate. 2021-06-17 Arnaud Charlet * 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 declarations. 2021-06-17 Arnaud Charlet * exp_util.adb (Find_Hook_Context): Do not stop on an aggregate node. 2021-06-17 Piotr Trojanek * sem_util.adb (Is_Valid_Renaming): Check not only indexed components, but slices too. 2021-06-17 Piotr Trojanek * 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. 2021-06-17 Piotr Trojanek * sem_util.adb (Is_Valid_Renaming): Body moved from its nested routine. 2021-06-17 Gary Dismukes * 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. 2021-06-17 Piotr Trojanek * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-gnatw.I): Remove double period at the end of sentence. * gnat_ugn.texi: Regenerate. 2021-06-17 Piotr Trojanek * sem_util.adb (Denotes_Same_Object): Call Get_Index_Bounds with the range of a slice object, not its type. 2021-06-17 Piotr Trojanek * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix style; refactor repeated calls to Nkind; remove early RETURN. 2021-06-17 Piotr Trojanek * sem_warn.adb (Warn_On_Overlapping_Actuals): Ignore formal of generic types, but keep examining other parameters. 2021-06-17 Piotr Trojanek * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove dead code. 2021-06-17 Piotr Trojanek * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove repeated code. 2021-06-17 Piotr Trojanek * checks.adb (Overlap_Check): Replace Set_Casing with Adjust_Name_Case and adapt surrounding code as needed. 2021-06-17 Arnaud Charlet * libgnat/s-putaim.ads, libgnat/s-putaim.adb: Move... * libgnarl/s-putaim.ads, libgnarl/s-putaim.adb: ... here. 2021-06-17 Arnaud Charlet * uintp.ads, uintp.adb (UI_To_Unsigned_64): New. 2021-06-17 Piotr Trojanek * sem_prag.adb (Get_Overflow_Mode): Reword error message. * switch-c.adb (Get_Overflow_Mode): Likewise. 2021-06-17 Richard Kenner * exp_util.adb (Expand_Static_Predicates_In_Choices): Handle Others_Discrete_Choices in N_Others_Choice. 2021-06-17 Arnaud Charlet * atree.adb: Remove redundant comment with spec. * sem_warn.adb: Fix typo in comment. 2021-06-17 Arnaud Charlet * atree.adb: Do not suppress checks. 2021-06-17 Justin Squirek * 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 * 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 * 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 * 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 * libgnat/i-c.ads, libgnat/i-cexten.ads, libgnat/i-cexten__128.ads: bool renamed C_bool. 2021-06-17 Piotr Trojanek * sem_ch4.adb (Analyze_Allocator): Reject allocators in restricted contexts. 2021-06-17 Arnaud Charlet * gcc-interface/Make-lang.in: Use libgnat.so if libgnat.a cannot be found. 2021-06-16 Piotr Trojanek * 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 * 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 * 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 * 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 * 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. 2021-06-16 Piotr Trojanek * sinput.adb (Sloc_Range): Refactor several repeated calls to Sloc and two comparisons with No_Location. 2021-06-16 Piotr Trojanek * 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. 2021-06-16 Piotr Trojanek * exp_ch3.adb (Build_Slice_Assignment): Remove unused initialization. 2021-06-16 Piotr Trojanek * restrict.adb, sem_attr.adb, types.ads: Fix typos in "occuring"; refill comment as necessary. 2021-06-16 Piotr Trojanek * sem_util.ads (Is_Actual_Parameter): Update comment. * sem_util.adb (Is_Actual_Parameter): Also detect entry parameters. 2021-06-16 Arnaud Charlet * 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. 2021-06-16 Piotr Trojanek * 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. 2021-06-16 Steve Baird * doc/gnat_rm/implementation_advice.rst: Add a section for RM A.18 . * gnat_rm.texi: Regenerate. 2021-06-16 Justin Squirek * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Add check for the mixing of entries. 2021-06-16 Justin Squirek * sem_ch13.adb (Make_Aitem_Pragma): Check for static expressions in Priority aspect arguments for restriction Static_Priorities. 2021-06-16 Justin Squirek * sem_util.adb (Accessibility_Level): Take into account renamings of loop parameters. 2021-06-16 Matthieu Eyraud * par_sco.adb (Set_Statement_Entry): Change sloc for dominance marker. (Traverse_One): Fix typo. (Output_Header): Fix comment. 2021-06-16 Richard Kenner * exp_unst.adb (Register_Subprogram): Don't look for aliases for subprograms that are generic. Reorder tests for efficiency. 2021-06-16 Eric Botcazou * sem_util.adb (Incomplete_Or_Partial_View): Retrieve the scope of the parameter and use it to find its incomplete view, if any. 2021-06-16 Eric Botcazou * freeze.adb (Check_No_Parts_Violations): Return earlier if the type is elementary or does not come from source. 2021-06-16 Bob Duff * 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). 2021-06-16 Eric Botcazou * sem_util.adb (Current_Entity_In_Scope): Reimplement. 2021-06-16 Piotr Trojanek * sem_ch8.adb (End_Scope): Remove extra parens. 2021-06-16 Javier Miranda * exp_disp.adb (Build_Class_Wide_Check): Ensure that evaluation of actuals is side effects free (since the check duplicates actuals). 2021-06-16 Ed Schonberg * sem_res.adb (Resolve_Raise_Expression): Apply Ada_2020 rules concerning the need for parentheses around Raise_Expressions in various contexts. 2021-06-16 Piotr Trojanek * sem_ch13.adb (Validate_Unchecked_Conversion): Move detection of generic types before switching to their private views; fix style in using AND THEN. 2021-06-16 Arnaud Charlet * sem_ch3.adb (Analyze_Component_Declaration): Do not special case raise expressions. 2021-06-16 Sergey Rybin * 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. * gnat_ugn.texi: Regenerate. 2021-06-16 Eric Botcazou * 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. 2021-06-16 Eric Botcazou * libgnat/s-except.ads (ZCX_By_Default): Delete. (Require_Body): Likewise. * libgnat/s-except.adb: Replace body with pragma No_Body. 2021-06-15 Steve Baird * exp_util.adb (Kill_Dead_Code): Generalize the existing handling of if statements to handle case statements similarly. 2021-06-15 Eric Botcazou * raise.h (_gnat_builtin_longjmp): Delete. (set_gnat_exit_status): Likewise. 2021-06-15 Piotr Trojanek * exp_util.adb (Possible_Side_Effect_In_SPARK): Handle component declaration just like full type and subtype declarations. 2021-06-15 Yannick Moy * errout.adb (First_And_Last_Node): Also apply to arbitrary late declarations, not only subprogram specs. 2021-06-15 Bob Duff * sem_ch3.adb (Make_Class_Wide_Type): Make sure all the calls to Reinit_Field_To_Zero are for the correct Ekinds. 2021-06-15 Bob Duff * 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. * gnat_rm.texi: Regenerate. 2021-06-15 Arnaud Charlet * exp_unst.adb (Unnest_Subprogram.Build_Table.Visit_Node): Fix handling of scopes for subprogram calls. 2021-06-15 Piotr Trojanek * sem_prag.adb: Fix typos in comments related to access types. * sem_util.adb (Is_Access_Variable): Stronger condition. 2021-06-15 Arnaud Charlet * 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. 2021-06-15 Eric Botcazou * raise-gcc.c (__gnat_personality_seh0): Use PERSONALITY_FUNCTION. 2021-06-15 Ed Schonberg * 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. 2021-06-15 Gary Dismukes * 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. 2021-06-15 Piotr Trojanek * exp_imgv.adb (Expand_User_Defined_Enumeration_Image): Fix typos. 2021-06-15 Bob Duff * einfo-utils.adb (Known_Component_Size, Known_Static_Component_Size, Unknown_Component_Size): Use Implementation_Base_Type instead of Base_Type. 2021-06-15 Bob Duff * gen_il-gen-gen_entities.adb (E_Loop_Parameter): Add Interface_Name field. 2021-06-15 Bob Duff * sem_cat.adb (Check_Non_Static_Default_Expr): Allow nonstatic expression in predefined unit with pragma Preelaborate. 2021-06-15 Yannick Moy * 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. 2021-06-15 Eric Botcazou * raise-gcc.c: Include instead of in C++. Include and unconditionally in C. 2021-06-15 Piotr Trojanek * sem_util.ads (Find_Overlaid_Entity): Simplify comment for spec. * sem_util.adb (Find_Overlaid_Entity): Remove defensive code from body. 2021-06-15 Eric Botcazou * argv.c: Add include of for the runtime. (gnat_argv): Change type to char ** and initialize to NULL. (gnat_envp): Likewise. * argv-lynxos178-raven-cert.c: Add include of . (gnat_argv): Change type to char ** and initialize to NULL. (gnat_envp): Likewise. 2021-06-15 Bob Duff * gen_il-gen.adb (Setter_Needs_Parent): Add missing Then_Actions. Fix self-contradictory comment. * exp_util.adb (Insert_Actions): Minor comment improvments. 2021-06-15 Arnaud Charlet * 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. 2021-06-15 Piotr Trojanek * sem_res.adb (Resolve_Actual): Replace repeated calls to "Etype (F)" with references to "F_Typ", which keeps the results of exactly that call. 2021-06-15 Bob Duff * 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. 2021-06-15 Bob Duff * 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 * 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. 2021-06-15 Steve Baird * 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 * 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 * 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 * 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. 2021-06-03 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : 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. : Add PAT local constant and use it throughout. 2021-05-26 Jakub Jelinek * init.c (__gnat_error_handler): Remove register keyword. 2021-05-25 Martin Liska * doc/share/conf.py: Fix Sphinx 4.0.x error. 2021-05-21 Piotr Trojanek * gcc-interface/trans.c (Raise_Error_to_gnu): Add an assertion. 2021-05-21 Eric Botcazou * gcc-interface/utils.c (gnat_pushdecl): Fix typo in comment. * gcc-interface/utils2.c (build_simple_component_ref): Build NULL_EXPR if the offset of the field has overflowed. (build_component_ref): Add gigi checking assertion that the reference has been built and replace the discriminant check by a Program_Error. 2021-05-21 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not pass default value in call to create_var_decl. : Likewise. : Both pass true for const_flag and false for const_decl_allowed_p in call to create_var_decl. Small tweaks in the generic record type case. (elaborate_expression): Rename need_debug into need_for_debug and adjust throughout. (elaborate_expression_1): Likewise. Pass Needs_Debug_Info instead of need_for_debug in call to create_var_decl. (elaborate_expression_2): Likewise. * gcc-interface/utils.c (maybe_pad_type): Pass false for const_decl_allowed_p in call to create_var_decl. 2021-05-21 Ghjuvan Lacambre * 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 * gcc-interface/decl.c (gnat_to_gnu_entity) : Process the implementation type of a packed type implemented specially. 2021-05-21 Eric Botcazou * 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 * 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. 2021-05-21 Eric Botcazou * 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. 2021-05-21 Eric Botcazou * gcc-interface/trans.c (gnat_to_gnu) : Put a SLOC on the assignment from the return value to the return object in the copy-in/copy-out case. 2021-05-21 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : 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. 2021-05-14 Martin Liska * doc/Makefile: Add gnat-style target. * doc/share/conf.py: Likewise. * doc/gnat-style.rst: New file. 2021-05-12 Bob Duff 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 * 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 * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): Use builtins from COROUTINES. (BUILT_IN_UNLIKELY): Likewise. 2021-05-11 Eric Botcazou * 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 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 * 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 * 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 * atree.adb (Zero_Slots): Remove obsolete comment and add header. 2021-05-10 Eric Botcazou * atree.h (Get_32_Bit_Field): Tidy up. (Get_32_Bit_Field_With_Default): Likewise. 2021-05-10 Eric Botcazou * Make-generated.in (do_gen_il): Replace with... (ada/stamp-gen_il): ...this. Do not copy files into generated/. 2021-05-10 Martin Liska * gcc-interface/utils.c (def_builtin_1): Use startswith function instead of strncmp. 2021-05-07 Piotr Trojanek * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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) : Remove old kludge for exceptions. : 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 * 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 * 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 * 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 * 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 * 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) : Add cast. 2021-05-07 Eric Botcazou * 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 * atree.ads, atree.adb: Major rewrite to support variable-sized node types. Add pragmas Suppress and Assertion_Policy. We now have an extra level of indirection: Node_Offsets is a table mapping Node_Ids to the offset of the start of each node in Slots. Slots is a table containing one or more contiguous slots for each node. Each slot is a 32-bit unchecked union that can contain any mixture of 1, 2, 4, 8, and 32-bit fields that fits. The old low-level getters and setters (e.g. Flag123) are removed. * gen_il-fields.ads, gen_il-gen-gen_entities.adb, gen_il-gen-gen_nodes.adb, gen_il-gen.adb, gen_il-gen.ads, gen_il-main.adb, gen_il-types.ads, gen_il-utils.adb, gen_il-utils.ads, gen_il.adb, gen_il.ads: New gen_il program that generates various Ada and C++ files. In particular, the following files are generated by gen_il: einfo-entities.adb einfo-entities.ads, gnatvsn.ads, nmake.adb, nmake.ads, seinfo.ads, seinfo_tables.adb, seinfo_tables.ads, sinfo-nodes.adb, sinfo-nodes.ads, einfo.h, and sinfo.h. * sinfo-utils.adb, sinfo-utils.ads, einfo-utils.adb, einfo-utils.ads: New files containing code that needs to refer to Sinfo.Nodes and Einfo.Entities. This code is mostly moved here from Sinfo and Einfo to break cycles. * back_end.adb: Pass node_offsets_ptr and slots_ptr to gigi, instead of nodes_ptr and flags_ptr. The Nodes and Flags tables no longer exist. (Note that gigi never used the Flags table.) * sinfo-cn.ads (Change_Identifier_To_Defining_Identifier, Change_Character_Literal_To_Defining_Character_Literal, Change_Operator_Symbol_To_Defining_Operator_Symbol): Turn N into an IN formal. * sinfo-cn.adb: Update. Add assertions, which can be removed at some point. Rewrite to use higher-level facilities. Make sure vanishing fields are zeroed out. Add with/use for new packages. * sem_util.adb: Remove "Assert(False)" immediately followed by "raise Program_Error". Use higher-level facilities such as Walk_Sinfo_Fields instead of depending on low-level Set_FieldN routines that no longer exist. Use Get_Comes_From_Source_Default instead of Default_Node.Comes_From_Source (Default_Node no longer exists). Use Set_Basic_Convention instead of Basic_Set_Convention. Add with/use for new packages. * sem_util.ads: The Convention field had getter Convention and setter Basic_Set_Convention. Make that more uniform: there is now a field called Basic_Convention, with Basic_Convention and Set_Basic_Convention as getter/setter, and write Convention and Set_Convention here. * nlists.adb: Rewrite to use abstractions, rather then depending on low-level implementation details of Atree. Necessary because those details have changed. Add with/use for new packages. * sem_ch12.adb: Use higher-level facilities such as Walk_Sinfo_Fields instead of depending on low-level Set_FieldN routines that no longer exist. Add with/use for new packages. * exp_cg.adb, sem_ch10.adb, sem_ch4.adb, sem_eval.adb, sem_prag.adb, sem_warn.adb: Change expanded names to refer to the new packages for things that moved. Add with/use for new packages. * sem_ch3.adb: Likewise. Reinitialize vanishing fields. * exp_disp.adb: Likewise. Remove failing assertion. * sinfo.ads, einfo.ads: Remove code that is now generated into Sinfo.Nodes and Einfo.Entities. * sinfo.adb, einfo.adb: Replace bodies with "pragma No_Body;". We should delete these at some point, but No_Body makes make files easier. Some code is moved to Sinfo.Nodes, Einfo.Entities, Sinfo.Utils, and Einfo.Utils. Some is no longer necessary. * treepr.adb: Rewrite to use new tables. We no longer need treeprs.ads. * treepr.ads: Add comment. * types.ads: Move types Component_Alignment_Kind and Float_Rep_Kind here. * atree.h: Major update to match atree.ads changes. Add slot types, for use by getters/setters. * types.h: Move types Component_Alignment_Kind and Float_Rep_Kind here. * fe.h: Rewrite to deal with code that has changed or moved from Atree, Sinfo, Einfo. * nlists.h: Move some code to fe.h. * alloc.ads: Split Nodes_* constants into Node_Offsets and Slots, because Atree has two separate tables. Increase values. Remove Nodes_Release_Threshold. Improve comment. * debug.adb, gnat1drv.adb: Remove obsolete gnatd.A and gnatd.N switches. Add with/use for new packages. * opt.ads: Minor comment fix. * aspects.adb, checks.adb, comperr.adb, contracts.adb, cstand.adb, debug_a.adb, errout.adb, eval_fat.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch11.adb, exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb, exp_dist.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb, exp_put_image.adb, exp_sel.adb, exp_smem.adb, exp_spark.adb, exp_strm.adb, exp_tss.adb, exp_unst.adb, exp_util.adb, exp_util.ads, expander.adb, freeze.adb, frontend.adb, get_targ.ads, ghost.adb, gnat_cuda.adb, impunit.adb, inline.adb, itypes.adb, itypes.ads, layout.adb, lib.adb, lib-load.adb, lib-writ.adb, lib-xref.adb, lib-xref.ads, lib-xref-spark_specific.adb, live.adb, par.adb, par_sco.adb, pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, scn.adb, sem.adb, sem.ads, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_case.adb, sem_cat.adb, sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dim.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_elim.adb, sem_intr.adb, sem_mech.adb, sem_res.adb, sem_scil.adb, sem_smem.adb, sem_type.adb, set_targ.ads, sinput.adb, sinput-l.adb, sprint.adb, style.adb, styleg.adb, tbuild.adb, tbuild.ads, uname.adb: Add with/use for new packages. * libgnat/a-stoubu.adb, libgnat/a-stouut.adb: Simplify to ease bootstrap. * libgnat/a-stobfi.adb, libgnat/a-stoufi.adb (Create_File, Create_New_File): Create file in binary format, to avoid introducing unwanted text conversions on Windows. Simplify to ease bootstrap. * libgnat/a-stteou__bootstrap.ads: New. * ceinfo.adb, csinfo.adb, nmake.adt, treeprs.adt, xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb: Delete. * Make-generated.in: Build and run the gen_il program to generate files. The files are generated in the ada/gen_il subdirectory, and then moved up to ada. We rely on gnatmake (as opposed to make) to build the gen_il program efficiently (i.e. don't do anything if the sources didn't change). * gcc-interface/Makefile.in (ADAFLAGS): Add -gnatU. (GNATMAKE_OBJS): Add new object files. (GENERATED_FILES_FOR_TOOLS): New variable. (../stamp-tools): Create a link for all GENERATED_FILES_FOR_TOOLS. * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add new object files. Remove ada/treeprs.o. (GNATBIND_OBJS): Add new object files. (ada.mostlyclean): Remove ada/sdefault.adb and add ada/stamp-gen_il. (ada.maintainer-clean): Remove ada/treeprs.ads. (update-sources): Remove obsolete target. (ada_generated_files): Rename to... (ADA_GENERATED_FILES): ... this. Add new source files. Add comment. * gcc-interface/trans.c: Remove obsolete Nodes_Ptr and Flags_ptr. Add Node_Offsets_Ptr and Slots_Ptr, which point to the corresponding tables in Atree. * gcc-interface/gigi.h (gigi): New parameters for initializing Node_Offsets_Ptr and Slots_Ptr. * gcc-interface/decl.c: Numeric_Kind, Discrete_Or_Fixed_Point_Kind, and Record_Kind were nonhierarchical, and were therefore removed for simplicity. Replace uses with calls to Is_In_... functions. 2021-05-07 Ed Schonberg * 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 * sem_res.adb (Flag_Object): Ignore prefixes of attribute Address. 2021-05-07 Yannick Moy * opt.ads: Update comment for Warn_On_Suspicious_Modulus_Value. * sem_res.adb (Resolve_Unary_Op): Generate warning. * usage.adb: Refine doc for -gnatw.m/M switch. * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update doc on -gnatw.m switch. * gnat_ugn.texi: Regenerate. 2021-05-07 Piotr Trojanek * 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. 2021-05-07 Piotr Trojanek * 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. 2021-05-07 Ed Schonberg * 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. 2021-05-07 Gary Dismukes * 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 * sem_eval.adb (Fold_Shift): Fix computation of Shift_Left resulting in negative signed values. 2021-05-07 Eric Botcazou * 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 * 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. 2021-05-07 Eric Botcazou * libgnat/s-fatgen.adb (Scaling): Raise Constraint_Error in the overflow case when T'Machine_Overflows is True. 2021-05-07 Bob Duff * libgnat/a-conhel.adb (TC_Check): Move the Assert into the 'if'. 2021-05-07 Frederic Konrad * sigtramp-vxworks-target.inc: Use a local label for the TOC. 2021-05-07 Claire Dross * exp_ch4.adb (Has_Inferable_Discriminants): Moved to Sem_Util. * sem_util.ads, sem_util.adb (Has_Inferable_Discriminants): Moved from Exp_Ch4. 2021-05-07 Ed Schonberg * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): Add guard to verify that the enclosing pragma is a precondition. 2021-05-06 Javier Miranda * 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. 2021-05-06 Piotr Trojanek * sem_ch3.adb (Constraint_Index): Remove redundant problematic analysis. 2021-05-06 Arnaud Charlet * exp_unst.adb (Note_Uplevel_Bound): Exclude E_Enumeration_Literal. 2021-05-06 Arnaud Charlet * 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. 2021-05-06 Boris Yakobowski * gnat1drv.adb (Adjust_Global_Switches): Simplify logic. 2021-05-06 Arnaud Charlet * libgnat/i-c.ads (bool): New type. * libgnat/i-cexten.ads, libgnat/i-cexten__128.ads (bool): Now a subtype of Interfaces.C.bool. * libgnarl/s-interr__vxworks.adb (Interrupt_Manager): Qualify False. * libgnarl/s-interr.adb, libgnarl/s-interr__hwint.adb, libgnarl/s-tasini.adb, libgnarl/s-tasren.adb, libgnarl/s-tassta.adb, libgnarl/s-tpobmu.adb, libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb: Replace Assert (False) by Assert (Standard.False). 2021-05-06 Ghjuvan Lacambre * make.adb (Compute_Executable): Document parameter. 2021-05-06 Eric Botcazou * libgnat/s-fatgen.adb (Scaling): Use single handling of underflow. Add pragma Annotate. 2021-05-06 Ghjuvan Lacambre * sem_eval.adb (Is_OK_Static_Subtype): Call Is_Static_Subtype, remove redundant checks. 2021-05-06 Piotr Trojanek * 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. 2021-05-06 Piotr Trojanek * 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. 2021-05-06 Ed Schonberg * exp_aggr.adb (Expand_Array_Aggregate): If the expression in an Others_Clause has not been analyzed because previous analysis of the enclosing aggregate showed the clause to be ineffective i.e. cover a null range, analyze it now to detect a possible type illegality. 2021-05-06 Eric Botcazou * libgnat/s-fatgen.adb (Scaling): Fix off-by-one bug for underflow. 2021-05-06 Arnaud Charlet * sem_ch6.adb (Is_Inline_Pragma): Protect against N not being a list member in both branches. 2021-05-06 Piotr Trojanek * libgnat/a-cofove.adb (Insert_Space): Remove hardcoded pragma Warnings. 2021-05-06 Piotr Trojanek * 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. 2021-05-06 Justin Squirek * checks.adb (Make_Discriminant_Constraint_Check): Add check for null when the type being converted is an access type. 2021-05-06 Arnaud Charlet * exp_pakd.adb (Expand_Packed_Eq): Fix handling of PATs. 2021-05-06 Piotr Trojanek * osint.adb (Read_Library_Info_From_Full): Cleanup unused initial value. 2021-05-06 Eric Botcazou * doc/gnat_rm/implementation_defined_characteristics.rst (3.5.7): Mention the IEEE standard explicitly. Use current format names. Document assumed rounding mode and new features of I/O support. * gnat_rm.texi: Regenerate. 2021-05-06 Eric Botcazou * init.c (__gnat_init_float): Use full version on Linux too. 2021-05-06 Eric Botcazou * libgnat/s-fatgen.adb (Valid): Do a bit comparison with 0.0 when denormalized numbers are not supported. 2021-05-06 Piotr Trojanek * 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. 2021-05-06 Piotr Trojanek * sem_attr.adb (Analyze_Image_Attribute): Remove redundant condition; add a missing header box. 2021-05-06 Gary Dismukes * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add mention of underscore and fix grammar error in doc for -gnatd. * gnat_ugn.texi: Regenerate. 2021-05-06 Eric Botcazou * 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. 2021-05-06 Piotr Trojanek * lib-writ.adb, osint.adb, osint.ads: Cleanup. 2021-05-06 Piotr Trojanek * 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. 2021-05-06 Ed Schonberg * 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. 2021-05-06 Arnaud Charlet * einfo.ads, exp_prag.adb, exp_util.adb: Fix typos. 2021-05-05 Piotr Trojanek * 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. 2021-05-05 Piotr Trojanek * 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. 2021-05-05 Justin Squirek * exp_ch6.adb (Expand_Call_Helper): Add condition to check for expanded actuals and remove dead code. 2021-05-05 Piotr Trojanek * exp_ch4.adb (Has_Unconstrained_UU_Component): Rewrite to follow the Ada RM grammar. 2021-05-05 Piotr Trojanek * 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. 2021-05-05 Piotr Trojanek * exp_ch4.adb (Component_Is_Unconstrained_UU): Detect both qualified and unqualified names of unchecked union components. 2021-05-05 Piotr Trojanek * 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. 2021-05-05 Piotr Trojanek * exp_ch4.adb (Apply_Accessibility_Check): Skip a statically true condition in expanded raise statement. 2021-05-05 Bob Duff * libgnat/s-os_lib.adb (Missed_Drive_Letter): Simplify the code. 2021-05-05 Ed Schonberg * 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. 2021-05-05 Eric Botcazou * 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. 2021-05-05 Ghjuvan Lacambre * exp_ch7.adb (Expand_N_Package_Body): Add CUDA init call. * sem_ch7.adb (Analyze_Package_Body_Helper): Remove CUDA init call. 2021-05-05 Ghjuvan Lacambre * par-ch5.adb (P_Condition): Check if expression is declare expression. 2021-05-05 Piotr Trojanek * make.adb (Make): Use GNAT.Ctrl_C.Install_Handler instead of a custom imported procedure. 2021-05-05 Eric Botcazou * 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. 2021-05-05 Piotr Trojanek * 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. 2021-05-05 Ghjuvan Lacambre * exp_util.adb (Is_Possibly_Unaligned_Object): Remove commented code. 2021-05-05 Ed Schonberg * sem_ch3.adb (Find_Type_Of_Object): When In_Spec_Expression is set and the object declaration generates a subtype indication, build the corresponding subtype declaration and place it in tree without the use of Insert_Actions, which is disabled in this context. 2021-05-05 Eric Botcazou * 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 * 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 * libgnat/s-dorepr.adb (Split): Declare a per-size temporary. Add pragma Annotate. 2021-05-05 Piotr Trojanek * exp_ch4.adb, sem_ch13.adb, sem_eval.adb, sem_res.adb: Remove redundant calls to UI_From_Int. 2021-05-05 Eric Botcazou * 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 * 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 * 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 * 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 * 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 * 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 * freeze.adb (Build_Renamed_Body): Simplify IF and WHILE statements with the same condition. 2021-05-05 Piotr Trojanek * 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 * pprint.adb: Remove qualification of arbitrary calls to Sinfo.Expressions and Sinfo.Parameter_Associations. 2021-05-04 Piotr Trojanek * pprint.adb (Expr_Name): Simplify with functional variant of UI_Image. 2021-05-04 Piotr Trojanek * pprint.adb (To_Mixed): Removed. 2021-05-04 Piotr Trojanek * pprint.adb (List_Name_Count): Change type from Integer to Natural. 2021-05-04 Yannick Moy * pprint.adb (Expression_Image): Special case for expression-with-actions. 2021-05-04 Bob Duff * exp_ch4.adb (Expand_Concatenate): Remove the non-optimization. 2021-05-04 Piotr Trojanek * lib-xref.adb (Generate_Reference_To_Formals): Remove dedicated branch for generic subprograms (they are now handled together with non-generic subprograms in the ELSE branch); replace a low-level Ekind membership test with a high-level call to Is_Access_Subprogram_Type. 2021-05-04 Piotr Trojanek * sem_ch12.adb (Check_Abstract_Primitives): Match First_Formal with Next_Formal. * sem_ch6.adb (Is_Non_Overriding_Operation): Likewise. 2021-05-04 Piotr Trojanek * sem_prag.adb (Collect_Global_Item): Iterate directly over formals. 2021-05-04 Piotr Trojanek * 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 * 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 * erroutc.adb (Matches): Move spec... * erroutc.ads (Matches): ...here. 2021-05-04 Yannick Moy * gnat1drv.adb (Adjust_Global_Switches): Force error marker in GNATprove mode. 2021-05-04 Bob Duff * 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 * 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 * cstand.adb, sprint.adb, switch-c.adb, xr_tabls.ads, xr_tabls.adb, xref_lib.adb: Address ??? comments. 2021-05-04 Piotr Trojanek * 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 * 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 * 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 * 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 * 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 * 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 * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Extend check to protected entries. 2021-05-04 Piotr Trojanek * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Fix reference to SPARK RM rule number. 2021-05-04 Eric Botcazou * 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 * 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. 2021-05-04 Piotr Trojanek * errout.adb (Error_Msg_Internal): Add assertion to prevent style mistakes reappearing in the future. 2021-05-04 Javier Miranda * exp_ch4.adb (Tagged_Membership): Remove wrong condition that is not consistent with the documentation of this subprogram. 2021-05-04 Yannick Moy * sem_res.adb (Valid_Conversion): Make message a continuation. 2021-05-04 Arnaud Charlet * styleg.adb: Address ??? comments. 2021-05-03 Arnaud Charlet * 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. 2021-05-03 Arnaud Charlet * libgnat/a-coorma.ads (Map): Add missing Preelaborate_Initialization. 2021-05-03 Piotr Trojanek * exp_ch4.adb (Analyze_Number_Declaration, Expand_N_Op_Expon): Simplify with Is_Universal_Numeric_Type. * sem_attr.adb (Resolve_Attribute): Likewise. * sem_ch3.adb: Likewise. * sem_ch4.adb (Check_Common_Type, Check_Arithmetic_Pair): Likewise. * sem_eval.adb (Eval_Unary_Op, Test_In_Range): Likewise. * sem_res.adb (Resolve_Arithmetic_Op, Resolve_Membership_Op, Resolve_Op_Expon, Resolve_Unary_Op, Set_Mixed_Mode_Operand, Set_Operand_Type): Likewise. * sem_type.adb (Disambiguate, Find_Unique_Type): Likewise. * sem_util.adb (Universal_Interpretation): Likewise. 2021-05-03 Piotr Trojanek * exp_aggr.adb (Max_Aggregate_Size): Add header boxes for nested routines; move a local constant after nested subprogram bodies; refill comment. 2021-05-03 Piotr Trojanek * sem_attr.adb (Analyze_Attribute): Reuse Resolve with implicit type when analysing attribute Priority. * sem_ch5.adb (Analyze_Case_Statement): Likewise for a rare case in analysis of case statements. (Analyze_Iterator_Specification): Likewise for non-overloaded domain of iteration. 2021-05-03 Piotr Trojanek * einfo.adb (Write_Entity_Info): Simplify an Ekind membership test. * exp_aggr.adb (Is_CCG_Supported_Aggregate): Likewise. 2021-05-03 Piotr Trojanek * exp_ch7.adb (Build_Finalize_Statements): Refine type of a local counter variable. * exp_dist.adb (Append_Record_Traversal): Refine type of Counter parameter. (Add_Process_Element): Likewise. (Build_From_Any_Call): Refine type of a local counter variable. (Build_From_Any_Function): Likewise. (Build_To_Any_Function): Likewise. (FA_Rec_Add_Process_Element): Likewise. (TA_Append_Record_Traversal): Likewise. (TA_Rec_Add_Process_Element): Likewise. 2021-05-03 Piotr Trojanek * rtsfind.adb (SPARK_Implicit_Load): Simplify with Discard_Node. 2021-05-03 Arnaud Charlet * Makefile.rtl: Update copyright notice. * ada_get_targ.adb: Likewise. * adabkend.adb: Likewise. * adabkend.ads: Likewise. * adadecode.c: Likewise. * adadecode.h: Likewise. * adaint.c: Likewise. * adaint.h: Likewise. * affinity.c: Likewise. * ali-util.adb: Likewise. * ali-util.ads: Likewise. * ali.adb: Likewise. * ali.ads: Likewise. * alloc.ads: Likewise. * argv-lynxos178-raven-cert.c: Likewise. * argv.c: Likewise. * aspects.adb: Likewise. * aspects.ads: Likewise. * atree.adb: Likewise. * atree.ads: Likewise. * atree.h: Likewise. * aux-io.c: Likewise. * back_end.adb: Likewise. * back_end.ads: Likewise. * bcheck.adb: Likewise. * bcheck.ads: Likewise. * binde.adb: Likewise. * binde.ads: Likewise. * binderr.adb: Likewise. * binderr.ads: Likewise. * bindgen.adb: Likewise. * bindgen.ads: Likewise. * bindo-augmentors.adb: Likewise. * bindo-augmentors.ads: Likewise. * bindo-builders.adb: Likewise. * bindo-builders.ads: Likewise. * bindo-diagnostics.adb: Likewise. * bindo-diagnostics.ads: Likewise. * bindo-elaborators.adb: Likewise. * bindo-elaborators.ads: Likewise. * bindo-graphs.adb: Likewise. * bindo-graphs.ads: Likewise. * bindo-units.adb: Likewise. * bindo-units.ads: Likewise. * bindo-validators.adb: Likewise. * bindo-validators.ads: Likewise. * bindo-writers.adb: Likewise. * bindo-writers.ads: Likewise. * bindo.adb: Likewise. * bindo.ads: Likewise. * bindusg.adb: Likewise. * bindusg.ads: Likewise. * butil.adb: Likewise. * butil.ads: Likewise. * cal.c: Likewise. * casing.adb: Likewise. * casing.ads: Likewise. * ceinfo.adb: Likewise. * checks.adb: Likewise. * checks.ads: Likewise. * cio.c: Likewise. * clean.adb: Likewise. * clean.ads: Likewise. * comperr.adb: Likewise. * comperr.ads: Likewise. * contracts.adb: 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.adb: Likewise. * einfo.ads: Likewise. * elists.adb: Likewise. * elists.ads: Likewise. * elists.h: Likewise. * env.c: Likewise. * env.h: Likewise. * err_vars.ads: Likewise. * errno.c: Likewise. * errout.adb: Likewise. * errout.ads: Likewise. * erroutc.adb: Likewise. * erroutc.ads: Likewise. * errutil.adb: Likewise. * errutil.ads: Likewise. * eval_fat.adb: Likewise. * eval_fat.ads: Likewise. * exit.c: Likewise. * exp_aggr.adb: Likewise. * exp_aggr.ads: Likewise. * exp_atag.adb: Likewise. * exp_atag.ads: Likewise. * exp_attr.adb: Likewise. * exp_attr.ads: Likewise. * exp_cg.adb: Likewise. * exp_cg.ads: Likewise. * exp_ch10.ads: Likewise. * exp_ch11.adb: Likewise. * exp_ch11.ads: Likewise. * exp_ch12.adb: Likewise. * exp_ch12.ads: Likewise. * exp_ch13.adb: Likewise. * exp_ch13.ads: Likewise. * exp_ch2.adb: Likewise. * exp_ch2.ads: Likewise. * exp_ch3.adb: Likewise. * exp_ch3.ads: Likewise. * exp_ch4.adb: Likewise. * exp_ch4.ads: Likewise. * exp_ch5.adb: Likewise. * exp_ch5.ads: Likewise. * exp_ch6.adb: Likewise. * exp_ch6.ads: Likewise. * exp_ch7.adb: Likewise. * exp_ch7.ads: Likewise. * exp_ch8.adb: Likewise. * exp_ch8.ads: Likewise. * exp_ch9.adb: Likewise. * exp_ch9.ads: Likewise. * exp_code.adb: Likewise. * exp_code.ads: Likewise. * exp_dbug.adb: Likewise. * exp_dbug.ads: Likewise. * exp_disp.adb: Likewise. * exp_disp.ads: Likewise. * exp_dist.adb: Likewise. * exp_dist.ads: Likewise. * exp_fixd.adb: Likewise. * exp_fixd.ads: Likewise. * exp_imgv.adb: Likewise. * exp_imgv.ads: Likewise. * exp_intr.adb: Likewise. * exp_intr.ads: Likewise. * exp_pakd.adb: Likewise. * exp_pakd.ads: Likewise. * exp_prag.adb: Likewise. * exp_prag.ads: Likewise. * exp_put_image.adb: Likewise. * exp_put_image.ads: Likewise. * exp_sel.adb: Likewise. * exp_sel.ads: Likewise. * exp_smem.adb: Likewise. * exp_smem.ads: Likewise. * exp_spark.adb: Likewise. * exp_spark.ads: Likewise. * exp_strm.adb: Likewise. * exp_strm.ads: Likewise. * exp_tss.adb: Likewise. * exp_tss.ads: Likewise. * exp_unst.adb: Likewise. * exp_unst.ads: Likewise. * exp_util.adb: Likewise. * exp_util.ads: Likewise. * expander.adb: Likewise. * expander.ads: Likewise. * expect.c: Likewise. * fe.h: Likewise. * final.c: Likewise. * fmap.adb: Likewise. * fmap.ads: Likewise. * fname-sf.adb: Likewise. * fname-sf.ads: Likewise. * fname-uf.adb: Likewise. * fname-uf.ads: Likewise. * fname.adb: Likewise. * fname.ads: Likewise. * freeze.adb: Likewise. * freeze.ads: Likewise. * frontend.adb: Likewise. * frontend.ads: Likewise. * gcc-interface/ada-tree.h: Likewise. * gcc-interface/ada.h: Likewise. * gcc-interface/cuintp.c: Likewise. * gcc-interface/decl.c: Likewise. * gcc-interface/gadaint.h: Likewise. * gcc-interface/gigi.h: Likewise. * gcc-interface/lang-specs.h: Likewise. * gcc-interface/misc.c: Likewise. * gcc-interface/system.ads: Likewise. * gcc-interface/targtyps.c: Likewise. * gcc-interface/trans.c: Likewise. * gcc-interface/utils.c: Likewise. * gcc-interface/utils2.c: Likewise. * get_scos.adb: Likewise. * get_scos.ads: Likewise. * get_targ.adb: Likewise. * get_targ.ads: Likewise. * ghost.adb: Likewise. * ghost.ads: Likewise. * gnat1drv.adb: Likewise. * gnat1drv.ads: Likewise. * gnat_cuda.adb: Likewise. * gnat_cuda.ads: Likewise. * gnatbind.adb: Likewise. * gnatbind.ads: Likewise. * gnatchop.adb: Likewise. * gnatclean.adb: Likewise. * gnatcmd.adb: Likewise. * gnatcmd.ads: Likewise. * gnatdll.adb: Likewise. * gnatfind.adb: Likewise. * gnatkr.adb: Likewise. * gnatkr.ads: Likewise. * gnatlink.adb: Likewise. * gnatlink.ads: Likewise. * gnatls.adb: Likewise. * gnatls.ads: Likewise. * gnatmake.adb: Likewise. * gnatmake.ads: Likewise. * gnatname.adb: Likewise. * gnatname.ads: Likewise. * gnatprep.adb: Likewise. * gnatprep.ads: Likewise. * gnatvsn.adb: Likewise. * gnatvsn.ads: Likewise. * gnatxref.adb: Likewise. * gprep.adb: Likewise. * gprep.ads: Likewise. * gsocket.h: Likewise. * hostparm.ads: Likewise. * impunit.adb: Likewise. * impunit.ads: Likewise. * indepsw-aix.adb: Likewise. * indepsw-darwin.adb: Likewise. * indepsw-gnu.adb: Likewise. * indepsw.adb: Likewise. * indepsw.ads: Likewise. * init.c: Likewise. * initialize.c: Likewise. * inline.adb: Likewise. * inline.ads: Likewise. * itypes.adb: Likewise. * itypes.ads: Likewise. * krunch.adb: Likewise. * krunch.ads: Likewise. * layout.adb: Likewise. * layout.ads: Likewise. * lib-list.adb: Likewise. * lib-load.adb: Likewise. * lib-load.ads: Likewise. * lib-sort.adb: Likewise. * lib-util.adb: Likewise. * lib-util.ads: Likewise. * lib-writ.adb: Likewise. * lib-writ.ads: Likewise. * lib-xref-spark_specific.adb: Likewise. * lib-xref.adb: Likewise. * lib-xref.ads: Likewise. * lib.adb: Likewise. * lib.ads: Likewise. * libgnarl/a-astaco.adb: Likewise. * libgnarl/a-dispat.adb: Likewise. * libgnarl/a-dynpri.adb: Likewise. * libgnarl/a-etgrbu.ads: Likewise. * libgnarl/a-exetim__darwin.adb: Likewise. * libgnarl/a-exetim__default.ads: Likewise. * libgnarl/a-exetim__mingw.adb: Likewise. * libgnarl/a-exetim__mingw.ads: Likewise. * libgnarl/a-exetim__posix.adb: Likewise. * libgnarl/a-interr.adb: Likewise. * libgnarl/a-interr.ads: Likewise. * libgnarl/a-intnam.ads: Likewise. * libgnarl/a-intnam__aix.ads: Likewise. * libgnarl/a-intnam__darwin.ads: Likewise. * libgnarl/a-intnam__dragonfly.ads: Likewise. * libgnarl/a-intnam__dummy.ads: Likewise. * libgnarl/a-intnam__freebsd.ads: Likewise. * libgnarl/a-intnam__hpux.ads: Likewise. * libgnarl/a-intnam__linux.ads: Likewise. * libgnarl/a-intnam__lynxos.ads: Likewise. * libgnarl/a-intnam__mingw.ads: Likewise. * libgnarl/a-intnam__qnx.ads: Likewise. * libgnarl/a-intnam__rtems.ads: Likewise. * libgnarl/a-intnam__solaris.ads: Likewise. * libgnarl/a-intnam__vxworks.ads: Likewise. * libgnarl/a-reatim.adb: Likewise. * libgnarl/a-reatim.ads: Likewise. * libgnarl/a-retide.adb: Likewise. * libgnarl/a-retide.ads: Likewise. * libgnarl/a-rttiev.adb: Likewise. * libgnarl/a-rttiev.ads: Likewise. * libgnarl/a-synbar.adb: Likewise. * libgnarl/a-synbar.ads: Likewise. * libgnarl/a-synbar__posix.adb: Likewise. * libgnarl/a-synbar__posix.ads: Likewise. * libgnarl/a-sytaco.adb: Likewise. * libgnarl/a-sytaco.ads: Likewise. * libgnarl/a-tasatt.adb: Likewise. * libgnarl/a-tasatt.ads: Likewise. * libgnarl/a-taside.adb: Likewise. * libgnarl/a-taside.ads: Likewise. * libgnarl/a-tasini.adb: Likewise. * libgnarl/a-tasini.ads: Likewise. * libgnarl/a-taster.adb: Likewise. * libgnarl/g-boubuf.adb: Likewise. * libgnarl/g-boubuf.ads: Likewise. * libgnarl/g-boumai.ads: Likewise. * libgnarl/g-semaph.adb: Likewise. * libgnarl/g-semaph.ads: Likewise. * libgnarl/g-signal.adb: Likewise. * libgnarl/g-signal.ads: Likewise. * libgnarl/g-tastus.ads: Likewise. * libgnarl/g-thread.adb: Likewise. * libgnarl/g-thread.ads: Likewise. * libgnarl/i-vxinco.adb: Likewise. * libgnarl/i-vxinco.ads: Likewise. * libgnarl/s-inmaop.ads: Likewise. * libgnarl/s-inmaop__dummy.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-interr__hwint.adb: Likewise. * libgnarl/s-interr__sigaction.adb: Likewise. * libgnarl/s-interr__vxworks.adb: Likewise. * libgnarl/s-intman.ads: Likewise. * libgnarl/s-intman__android.adb: Likewise. * libgnarl/s-intman__dummy.adb: Likewise. * libgnarl/s-intman__lynxos.adb: Likewise. * libgnarl/s-intman__mingw.adb: Likewise. * libgnarl/s-intman__posix.adb: Likewise. * libgnarl/s-intman__qnx.adb: Likewise. * libgnarl/s-intman__solaris.adb: Likewise. * libgnarl/s-intman__susv3.adb: Likewise. * libgnarl/s-intman__vxworks.adb: Likewise. * libgnarl/s-intman__vxworks.ads: Likewise. * libgnarl/s-linux.ads: Likewise. * libgnarl/s-linux__alpha.ads: Likewise. * libgnarl/s-linux__android.ads: Likewise. * libgnarl/s-linux__hppa.ads: Likewise. * libgnarl/s-linux__mips.ads: Likewise. * libgnarl/s-linux__riscv.ads: Likewise. * libgnarl/s-linux__sparc.ads: Likewise. * libgnarl/s-linux__x32.ads: Likewise. * libgnarl/s-mudido.adb: Likewise. * libgnarl/s-mudido__affinity.adb: Likewise. * libgnarl/s-osinte__aix.adb: Likewise. * libgnarl/s-osinte__aix.ads: Likewise. * libgnarl/s-osinte__android.adb: Likewise. * libgnarl/s-osinte__android.ads: Likewise. * libgnarl/s-osinte__darwin.adb: Likewise. * libgnarl/s-osinte__darwin.ads: Likewise. * libgnarl/s-osinte__dragonfly.adb: Likewise. * libgnarl/s-osinte__dragonfly.ads: Likewise. * libgnarl/s-osinte__dummy.ads: Likewise. * libgnarl/s-osinte__freebsd.adb: Likewise. * libgnarl/s-osinte__freebsd.ads: Likewise. * libgnarl/s-osinte__gnu.adb: Likewise. * libgnarl/s-osinte__gnu.ads: Likewise. * libgnarl/s-osinte__hpux-dce.adb: Likewise. * libgnarl/s-osinte__hpux-dce.ads: Likewise. * libgnarl/s-osinte__hpux.ads: Likewise. * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise. * libgnarl/s-osinte__linux.ads: Likewise. * libgnarl/s-osinte__lynxos178.adb: Likewise. * libgnarl/s-osinte__lynxos178e.ads: Likewise. * libgnarl/s-osinte__mingw.ads: Likewise. * libgnarl/s-osinte__posix.adb: Likewise. * libgnarl/s-osinte__qnx.adb: Likewise. * libgnarl/s-osinte__qnx.ads: Likewise. * libgnarl/s-osinte__rtems.adb: Likewise. * libgnarl/s-osinte__rtems.ads: Likewise. * libgnarl/s-osinte__solaris.adb: Likewise. * libgnarl/s-osinte__solaris.ads: Likewise. * libgnarl/s-osinte__vxworks.adb: Likewise. * libgnarl/s-osinte__vxworks.ads: Likewise. * libgnarl/s-osinte__x32.adb: Likewise. * libgnarl/s-proinf.adb: Likewise. * libgnarl/s-proinf.ads: Likewise. * libgnarl/s-qnx.ads: Likewise. * libgnarl/s-solita.adb: Likewise. * libgnarl/s-solita.ads: Likewise. * libgnarl/s-stusta.adb: Likewise. * libgnarl/s-stusta.ads: Likewise. * libgnarl/s-taasde.adb: Likewise. * libgnarl/s-taasde.ads: Likewise. * libgnarl/s-tadeca.adb: Likewise. * libgnarl/s-tadeca.ads: Likewise. * libgnarl/s-tadert.adb: Likewise. * libgnarl/s-tadert.ads: Likewise. * libgnarl/s-taenca.adb: Likewise. * libgnarl/s-taenca.ads: Likewise. * libgnarl/s-taprob.adb: Likewise. * libgnarl/s-taprob.ads: Likewise. * libgnarl/s-taprop.ads: Likewise. * libgnarl/s-taprop__dummy.adb: Likewise. * libgnarl/s-taprop__hpux-dce.adb: Likewise. * libgnarl/s-taprop__linux.adb: Likewise. * libgnarl/s-taprop__mingw.adb: Likewise. * libgnarl/s-taprop__posix.adb: Likewise. * libgnarl/s-taprop__qnx.adb: Likewise. * libgnarl/s-taprop__solaris.adb: Likewise. * libgnarl/s-taprop__vxworks.adb: Likewise. * libgnarl/s-tarest.adb: Likewise. * libgnarl/s-tarest.ads: Likewise. * libgnarl/s-tasdeb.adb: Likewise. * libgnarl/s-tasdeb.ads: Likewise. * libgnarl/s-tasinf.adb: Likewise. * libgnarl/s-tasinf.ads: Likewise. * libgnarl/s-tasinf__linux.adb: Likewise. * libgnarl/s-tasinf__linux.ads: Likewise. * libgnarl/s-tasinf__mingw.adb: Likewise. * libgnarl/s-tasinf__mingw.ads: Likewise. * libgnarl/s-tasinf__solaris.adb: Likewise. * libgnarl/s-tasinf__solaris.ads: Likewise. * libgnarl/s-tasinf__vxworks.ads: Likewise. * libgnarl/s-tasini.adb: Likewise. * libgnarl/s-tasini.ads: Likewise. * libgnarl/s-taskin.adb: Likewise. * libgnarl/s-taskin.ads: Likewise. * libgnarl/s-taspri__dummy.ads: Likewise. * libgnarl/s-taspri__hpux-dce.ads: Likewise. * libgnarl/s-taspri__lynxos.ads: Likewise. * libgnarl/s-taspri__mingw.ads: Likewise. * libgnarl/s-taspri__posix-noaltstack.ads: Likewise. * libgnarl/s-taspri__posix.ads: Likewise. * libgnarl/s-taspri__solaris.ads: Likewise. * libgnarl/s-taspri__vxworks.ads: Likewise. * libgnarl/s-tasque.adb: Likewise. * libgnarl/s-tasque.ads: Likewise. * libgnarl/s-tasren.adb: Likewise. * libgnarl/s-tasren.ads: Likewise. * libgnarl/s-tasres.ads: Likewise. * libgnarl/s-tassta.adb: Likewise. * libgnarl/s-tassta.ads: Likewise. * libgnarl/s-tasuti.adb: Likewise. * libgnarl/s-tasuti.ads: Likewise. * libgnarl/s-tataat.adb: Likewise. * libgnarl/s-tataat.ads: Likewise. * libgnarl/s-tpinop.adb: Likewise. * libgnarl/s-tpinop.ads: Likewise. * libgnarl/s-tpoaal.adb: Likewise. * libgnarl/s-tpoben.adb: Likewise. * libgnarl/s-tpoben.ads: Likewise. * libgnarl/s-tpobmu.adb: Likewise. * libgnarl/s-tpobmu.ads: Likewise. * libgnarl/s-tpobop.adb: Likewise. * libgnarl/s-tpobop.ads: Likewise. * libgnarl/s-tpopmo.adb: Likewise. * libgnarl/s-tpopsp__posix-foreign.adb: Likewise. * libgnarl/s-tpopsp__posix.adb: Likewise. * libgnarl/s-tpopsp__solaris.adb: Likewise. * libgnarl/s-tpopsp__tls.adb: Likewise. * libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise. * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise. * libgnarl/s-tpopsp__vxworks.adb: Likewise. * libgnarl/s-tporft.adb: Likewise. * libgnarl/s-tposen.adb: Likewise. * libgnarl/s-tposen.ads: Likewise. * libgnarl/s-vxwext.adb: Likewise. * libgnarl/s-vxwext.ads: 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. * libgnarl/s-vxwork__x86.ads: Likewise. * libgnarl/thread.c: Likewise. * libgnat/a-assert.adb: Likewise. * libgnat/a-assert.ads: Likewise. * libgnat/a-btgbso.adb: Likewise. * libgnat/a-btgbso.ads: Likewise. * libgnat/a-calari.adb: Likewise. * libgnat/a-calari.ads: Likewise. * libgnat/a-calcon.adb: Likewise. * libgnat/a-calcon.ads: Likewise. * libgnat/a-caldel.adb: Likewise. * libgnat/a-caldel.ads: Likewise. * libgnat/a-calend.adb: Likewise. * libgnat/a-calend.ads: Likewise. * libgnat/a-calfor.adb: Likewise. * libgnat/a-calfor.ads: Likewise. * libgnat/a-catizo.adb: Likewise. * libgnat/a-cbdlli.adb: Likewise. * libgnat/a-cbdlli.ads: Likewise. * libgnat/a-cbhama.adb: Likewise. * libgnat/a-cbhama.ads: Likewise. * libgnat/a-cbhase.adb: Likewise. * libgnat/a-cbhase.ads: Likewise. * libgnat/a-cbmutr.adb: Likewise. * libgnat/a-cbmutr.ads: Likewise. * libgnat/a-cborma.adb: Likewise. * libgnat/a-cborma.ads: Likewise. * libgnat/a-cborse.adb: Likewise. * libgnat/a-cborse.ads: Likewise. * libgnat/a-cbprqu.adb: Likewise. * libgnat/a-cbprqu.ads: Likewise. * libgnat/a-cbsyqu.adb: Likewise. * libgnat/a-cbsyqu.ads: Likewise. * libgnat/a-cdlili.adb: Likewise. * libgnat/a-cdlili.ads: Likewise. * libgnat/a-cfdlli.adb: Likewise. * libgnat/a-cfdlli.ads: Likewise. * libgnat/a-cfhama.adb: Likewise. * libgnat/a-cfhama.ads: Likewise. * libgnat/a-cfhase.adb: Likewise. * libgnat/a-cfhase.ads: Likewise. * libgnat/a-cfinve.adb: Likewise. * libgnat/a-cfinve.ads: Likewise. * libgnat/a-cforma.adb: Likewise. * libgnat/a-cforma.ads: Likewise. * libgnat/a-cforse.adb: Likewise. * libgnat/a-cforse.ads: Likewise. * libgnat/a-cgaaso.adb: Likewise. * libgnat/a-cgaaso.ads: Likewise. * libgnat/a-cgarso.adb: Likewise. * libgnat/a-cgcaso.adb: Likewise. * libgnat/a-chacon.adb: Likewise. * libgnat/a-chacon.ads: Likewise. * libgnat/a-chahan.adb: Likewise. * libgnat/a-chahan.ads: Likewise. * libgnat/a-chlat9.ads: Likewise. * libgnat/a-chtgbk.adb: Likewise. * libgnat/a-chtgbk.ads: Likewise. * libgnat/a-chtgbo.adb: Likewise. * libgnat/a-chtgbo.ads: Likewise. * libgnat/a-chtgke.adb: Likewise. * libgnat/a-chtgke.ads: Likewise. * libgnat/a-chtgop.adb: Likewise. * libgnat/a-chtgop.ads: Likewise. * libgnat/a-chzla1.ads: Likewise. * libgnat/a-chzla9.ads: Likewise. * libgnat/a-cidlli.adb: Likewise. * libgnat/a-cidlli.ads: Likewise. * libgnat/a-cihama.adb: Likewise. * libgnat/a-cihama.ads: Likewise. * libgnat/a-cihase.adb: Likewise. * libgnat/a-cihase.ads: Likewise. * libgnat/a-cimutr.adb: Likewise. * libgnat/a-cimutr.ads: Likewise. * libgnat/a-ciorma.adb: Likewise. * libgnat/a-ciorma.ads: Likewise. * libgnat/a-ciormu.adb: Likewise. * libgnat/a-ciormu.ads: Likewise. * libgnat/a-ciorse.adb: Likewise. * libgnat/a-ciorse.ads: Likewise. * libgnat/a-clrefi.adb: Likewise. * libgnat/a-clrefi.ads: Likewise. * libgnat/a-coboho.adb: Likewise. * libgnat/a-coboho.ads: Likewise. * libgnat/a-cobove.adb: Likewise. * libgnat/a-cobove.ads: Likewise. * libgnat/a-cofove.adb: Likewise. * libgnat/a-cofove.ads: Likewise. * libgnat/a-cofuba.adb: Likewise. * libgnat/a-cofuba.ads: Likewise. * libgnat/a-cofuma.adb: Likewise. * libgnat/a-cofuma.ads: Likewise. * libgnat/a-cofuse.adb: Likewise. * libgnat/a-cofuse.ads: Likewise. * libgnat/a-cofuve.adb: Likewise. * libgnat/a-cofuve.ads: Likewise. * libgnat/a-cogeso.adb: Likewise. * libgnat/a-cogeso.ads: Likewise. * libgnat/a-cohama.adb: Likewise. * libgnat/a-cohama.ads: Likewise. * libgnat/a-cohase.adb: Likewise. * libgnat/a-cohase.ads: Likewise. * libgnat/a-cohata.ads: Likewise. * libgnat/a-coinho.adb: Likewise. * libgnat/a-coinho.ads: Likewise. * libgnat/a-coinho__shared.adb: Likewise. * libgnat/a-coinho__shared.ads: Likewise. * libgnat/a-coinve.adb: Likewise. * libgnat/a-coinve.ads: Likewise. * libgnat/a-colien.adb: Likewise. * libgnat/a-colien.ads: Likewise. * libgnat/a-colire.adb: Likewise. * libgnat/a-colire.ads: Likewise. * libgnat/a-comlin.adb: Likewise. * libgnat/a-comlin.ads: Likewise. * libgnat/a-comutr.adb: Likewise. * libgnat/a-comutr.ads: Likewise. * libgnat/a-conhel.adb: Likewise. * libgnat/a-conhel.ads: Likewise. * libgnat/a-convec.adb: Likewise. * libgnat/a-convec.ads: Likewise. * libgnat/a-coorma.adb: Likewise. * libgnat/a-coorma.ads: Likewise. * libgnat/a-coormu.adb: Likewise. * libgnat/a-coormu.ads: Likewise. * libgnat/a-coorse.adb: Likewise. * libgnat/a-coorse.ads: Likewise. * libgnat/a-coprnu.adb: Likewise. * libgnat/a-coprnu.ads: Likewise. * libgnat/a-crbltr.ads: Likewise. * libgnat/a-crbtgk.adb: Likewise. * libgnat/a-crbtgk.ads: Likewise. * libgnat/a-crbtgo.adb: Likewise. * libgnat/a-crbtgo.ads: Likewise. * libgnat/a-crdlli.adb: Likewise. * libgnat/a-crdlli.ads: Likewise. * libgnat/a-csquin.ads: Likewise. * libgnat/a-cuprqu.adb: Likewise. * libgnat/a-cuprqu.ads: Likewise. * libgnat/a-cusyqu.adb: Likewise. * libgnat/a-cusyqu.ads: Likewise. * libgnat/a-cwila1.ads: Likewise. * libgnat/a-cwila9.ads: Likewise. * libgnat/a-decima.adb: Likewise. * libgnat/a-decima.ads: Likewise. * libgnat/a-decima__128.ads: Likewise. * libgnat/a-dhfina.adb: Likewise. * libgnat/a-dhfina.ads: Likewise. * libgnat/a-diocst.adb: Likewise. * libgnat/a-diocst.ads: Likewise. * libgnat/a-direct.adb: Likewise. * libgnat/a-direct.ads: Likewise. * libgnat/a-direio.adb: Likewise. * libgnat/a-direio.ads: Likewise. * libgnat/a-dirval.adb: Likewise. * libgnat/a-dirval.ads: Likewise. * libgnat/a-dirval__mingw.adb: Likewise. * libgnat/a-einuoc.adb: 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-except.ads: Likewise. * libgnat/a-exctra.adb: Likewise. * libgnat/a-exctra.ads: Likewise. * libgnat/a-exexda.adb: Likewise. * libgnat/a-exexpr.adb: Likewise. * libgnat/a-exextr.adb: Likewise. * libgnat/a-exstat.adb: Likewise. * libgnat/a-finali.adb: Likewise. * libgnat/a-finali.ads: Likewise. * libgnat/a-locale.adb: Likewise. * libgnat/a-locale.ads: Likewise. * libgnat/a-nagefl.ads: Likewise. * libgnat/a-naliop.ads: Likewise. * libgnat/a-naliop__nolibm.ads: Likewise. * libgnat/a-nallfl.ads: Likewise. * libgnat/a-nallfl__wraplf.ads: Likewise. * libgnat/a-nalofl.ads: Likewise. * libgnat/a-nashfl.ads: Likewise. * libgnat/a-nashfl__wraplf.ads: Likewise. * libgnat/a-nbnbin.adb: Likewise. * libgnat/a-nbnbin__gmp.adb: Likewise. * libgnat/a-nbnbre.adb: Likewise. * libgnat/a-ngcefu.adb: Likewise. * libgnat/a-ngcoar.adb: Likewise. * libgnat/a-ngcoty.adb: Likewise. * libgnat/a-ngcoty.ads: Likewise. * libgnat/a-ngelfu.adb: Likewise. * libgnat/a-ngelfu.ads: Likewise. * libgnat/a-ngrear.adb: Likewise. * libgnat/a-ngrear.ads: Likewise. * libgnat/a-nuauco.ads: Likewise. * libgnat/a-nuauco__x86.ads: Likewise. * libgnat/a-nuaufl.ads: Likewise. * libgnat/a-nuaufl__wraplf.ads: Likewise. * libgnat/a-nudira.adb: Likewise. * libgnat/a-nudira.ads: Likewise. * libgnat/a-nuflra.adb: Likewise. * libgnat/a-nuflra.ads: Likewise. * libgnat/a-numaux.ads: Likewise. * libgnat/a-rbtgbk.adb: Likewise. * libgnat/a-rbtgbk.ads: Likewise. * libgnat/a-rbtgbo.adb: Likewise. * libgnat/a-rbtgbo.ads: Likewise. * libgnat/a-rbtgso.adb: Likewise. * libgnat/a-rbtgso.ads: Likewise. * libgnat/a-sbecin.adb: Likewise. * libgnat/a-sbecin.ads: Likewise. * libgnat/a-sbhcin.adb: Likewise. * libgnat/a-sbhcin.ads: Likewise. * libgnat/a-sblcin.adb: Likewise. * libgnat/a-sblcin.ads: Likewise. * libgnat/a-secain.adb: Likewise. * libgnat/a-secain.ads: Likewise. * libgnat/a-sequio.adb: Likewise. * libgnat/a-sequio.ads: Likewise. * libgnat/a-sfecin.ads: Likewise. * libgnat/a-sfhcin.ads: Likewise. * libgnat/a-sflcin.ads: Likewise. * libgnat/a-shcain.adb: Likewise. * libgnat/a-shcain.ads: Likewise. * libgnat/a-siocst.adb: Likewise. * libgnat/a-siocst.ads: Likewise. * libgnat/a-slcain.adb: Likewise. * libgnat/a-slcain.ads: Likewise. * libgnat/a-ssicst.adb: Likewise. * libgnat/a-ssicst.ads: Likewise. * libgnat/a-stboha.adb: Likewise. * libgnat/a-stmaco.ads: Likewise. * libgnat/a-stobbu.adb: Likewise. * libgnat/a-stobbu.ads: Likewise. * libgnat/a-stobfi.adb: Likewise. * libgnat/a-stobfi.ads: Likewise. * libgnat/a-storio.adb: Likewise. * libgnat/a-stoubu.adb: Likewise. * libgnat/a-stoubu.ads: Likewise. * libgnat/a-stoufi.adb: Likewise. * libgnat/a-stoufi.ads: Likewise. * libgnat/a-stoufo.adb: Likewise. * libgnat/a-stoufo.ads: Likewise. * libgnat/a-stouut.adb: Likewise. * libgnat/a-stouut.ads: Likewise. * libgnat/a-strbou.adb: Likewise. * libgnat/a-strbou.ads: Likewise. * libgnat/a-stream.adb: Likewise. * libgnat/a-stream.ads: Likewise. * libgnat/a-strfix.adb: Likewise. * libgnat/a-strhas.adb: Likewise. * libgnat/a-strmap.adb: Likewise. * libgnat/a-strmap.ads: Likewise. * libgnat/a-strsea.adb: Likewise. * libgnat/a-strsea.ads: Likewise. * libgnat/a-strsto.ads: Likewise. * libgnat/a-strsup.adb: Likewise. * libgnat/a-strsup.ads: Likewise. * libgnat/a-strunb.adb: Likewise. * libgnat/a-strunb.ads: Likewise. * libgnat/a-strunb__shared.adb: Likewise. * libgnat/a-strunb__shared.ads: Likewise. * libgnat/a-ststbo.adb: Likewise. * libgnat/a-ststbo.ads: Likewise. * libgnat/a-ststio.adb: Likewise. * libgnat/a-ststio.ads: Likewise. * libgnat/a-ststun.adb: Likewise. * libgnat/a-ststun.ads: Likewise. * libgnat/a-stteou.ads: Likewise. * libgnat/a-stunau.adb: Likewise. * libgnat/a-stunau.ads: Likewise. * libgnat/a-stunau__shared.adb: Likewise. * libgnat/a-stunha.adb: Likewise. * libgnat/a-stuten.adb: Likewise. * libgnat/a-stwibo.adb: Likewise. * libgnat/a-stwibo.ads: Likewise. * libgnat/a-stwifi.adb: Likewise. * libgnat/a-stwiha.adb: Likewise. * libgnat/a-stwima.adb: Likewise. * libgnat/a-stwima.ads: Likewise. * libgnat/a-stwise.adb: Likewise. * libgnat/a-stwise.ads: Likewise. * libgnat/a-stwisu.adb: Likewise. * libgnat/a-stwisu.ads: Likewise. * libgnat/a-stwiun.adb: Likewise. * libgnat/a-stwiun.ads: Likewise. * libgnat/a-stwiun__shared.adb: Likewise. * libgnat/a-stwiun__shared.ads: Likewise. * libgnat/a-stzbou.adb: Likewise. * libgnat/a-stzbou.ads: Likewise. * libgnat/a-stzfix.adb: Likewise. * libgnat/a-stzhas.adb: Likewise. * libgnat/a-stzmap.adb: Likewise. * libgnat/a-stzmap.ads: Likewise. * libgnat/a-stzsea.adb: Likewise. * libgnat/a-stzsea.ads: Likewise. * libgnat/a-stzsup.adb: Likewise. * libgnat/a-stzsup.ads: Likewise. * libgnat/a-stzunb.adb: Likewise. * libgnat/a-stzunb.ads: Likewise. * libgnat/a-stzunb__shared.adb: Likewise. * libgnat/a-stzunb__shared.ads: Likewise. * libgnat/a-suecin.adb: Likewise. * libgnat/a-suecin.ads: Likewise. * libgnat/a-suenco.adb: Likewise. * libgnat/a-suenst.adb: Likewise. * libgnat/a-suewst.adb: Likewise. * libgnat/a-suezst.adb: Likewise. * libgnat/a-suhcin.adb: Likewise. * libgnat/a-suhcin.ads: Likewise. * libgnat/a-sulcin.adb: Likewise. * libgnat/a-sulcin.ads: Likewise. * libgnat/a-suteio.adb: Likewise. * libgnat/a-suteio.ads: Likewise. * libgnat/a-suteio__shared.adb: Likewise. * libgnat/a-swbwha.adb: Likewise. * libgnat/a-swmwco.ads: Likewise. * libgnat/a-swunau.adb: Likewise. * libgnat/a-swunau.ads: Likewise. * libgnat/a-swunau__shared.adb: Likewise. * libgnat/a-swuwha.adb: Likewise. * libgnat/a-swuwti.adb: Likewise. * libgnat/a-swuwti.ads: Likewise. * libgnat/a-swuwti__shared.adb: Likewise. * libgnat/a-szbzha.adb: Likewise. * libgnat/a-szmzco.ads: Likewise. * libgnat/a-szunau.adb: Likewise. * libgnat/a-szunau.ads: Likewise. * libgnat/a-szunau__shared.adb: Likewise. * libgnat/a-szuzha.adb: Likewise. * libgnat/a-szuzti.adb: Likewise. * libgnat/a-szuzti.ads: Likewise. * libgnat/a-szuzti__shared.adb: Likewise. * libgnat/a-tags.adb: Likewise. * libgnat/a-tags.ads: Likewise. * libgnat/a-teioed.adb: Likewise. * libgnat/a-teioed.ads: Likewise. * libgnat/a-textio.adb: Likewise. * libgnat/a-textio.ads: Likewise. * libgnat/a-tiboio.adb: Likewise. * libgnat/a-ticoau.adb: Likewise. * libgnat/a-ticoau.ads: Likewise. * libgnat/a-ticoio.adb: Likewise. * libgnat/a-ticoio.ads: Likewise. * libgnat/a-tideau.adb: Likewise. * libgnat/a-tideau.ads: Likewise. * libgnat/a-tideio.adb: Likewise. * libgnat/a-tideio.ads: Likewise. * libgnat/a-tideio__128.adb: Likewise. * libgnat/a-tienau.adb: Likewise. * libgnat/a-tienau.ads: Likewise. * libgnat/a-tienio.adb: Likewise. * libgnat/a-tifiau.adb: Likewise. * libgnat/a-tifiau.ads: Likewise. * libgnat/a-tifiio.adb: Likewise. * libgnat/a-tifiio__128.adb: Likewise. * libgnat/a-tiflau.adb: Likewise. * libgnat/a-tiflau.ads: Likewise. * libgnat/a-tiflio.adb: Likewise. * libgnat/a-tiflio.ads: Likewise. * libgnat/a-tigeau.adb: Likewise. * libgnat/a-tigeau.ads: Likewise. * libgnat/a-tigeli.adb: Likewise. * libgnat/a-tiinau.adb: Likewise. * libgnat/a-tiinau.ads: Likewise. * libgnat/a-tiinio.adb: Likewise. * libgnat/a-tiinio.ads: Likewise. * libgnat/a-tiinio__128.adb: Likewise. * libgnat/a-timoio.adb: Likewise. * libgnat/a-timoio.ads: Likewise. * libgnat/a-timoio__128.adb: Likewise. * libgnat/a-tiocst.adb: Likewise. * libgnat/a-tiocst.ads: Likewise. * libgnat/a-tirsfi.adb: Likewise. * libgnat/a-tirsfi.ads: Likewise. * libgnat/a-titest.adb: Likewise. * libgnat/a-undesu.adb: Likewise. * libgnat/a-wichha.adb: Likewise. * libgnat/a-wichun.adb: Likewise. * libgnat/a-wichun.ads: Likewise. * libgnat/a-witeio.adb: Likewise. * libgnat/a-witeio.ads: Likewise. * libgnat/a-wrstfi.adb: Likewise. * libgnat/a-wrstfi.ads: Likewise. * libgnat/a-wtcoau.adb: Likewise. * libgnat/a-wtcoau.ads: Likewise. * libgnat/a-wtcoio.adb: Likewise. * libgnat/a-wtcstr.adb: Likewise. * libgnat/a-wtcstr.ads: Likewise. * libgnat/a-wtdeau.adb: Likewise. * libgnat/a-wtdeau.ads: Likewise. * libgnat/a-wtdeio.adb: Likewise. * libgnat/a-wtdeio__128.adb: Likewise. * libgnat/a-wtedit.adb: Likewise. * libgnat/a-wtedit.ads: Likewise. * libgnat/a-wtenau.adb: Likewise. * libgnat/a-wtenau.ads: Likewise. * libgnat/a-wtenio.adb: Likewise. * libgnat/a-wtfiau.adb: Likewise. * libgnat/a-wtfiau.ads: Likewise. * libgnat/a-wtfiio.adb: Likewise. * libgnat/a-wtfiio__128.adb: Likewise. * libgnat/a-wtflau.adb: Likewise. * libgnat/a-wtflau.ads: Likewise. * libgnat/a-wtflio.adb: Likewise. * libgnat/a-wtgeau.adb: Likewise. * libgnat/a-wtgeau.ads: Likewise. * libgnat/a-wtinau.adb: Likewise. * libgnat/a-wtinau.ads: Likewise. * libgnat/a-wtinio.adb: Likewise. * libgnat/a-wtinio__128.adb: Likewise. * libgnat/a-wtmoio.adb: Likewise. * libgnat/a-wtmoio.ads: Likewise. * libgnat/a-wtmoio__128.adb: Likewise. * libgnat/a-wttest.adb: Likewise. * libgnat/a-wwboio.adb: Likewise. * libgnat/a-zchhan.adb: Likewise. * libgnat/a-zchuni.adb: Likewise. * libgnat/a-zchuni.ads: Likewise. * libgnat/a-zrstfi.adb: Likewise. * libgnat/a-zrstfi.ads: Likewise. * libgnat/a-ztcoau.adb: Likewise. * libgnat/a-ztcoio.adb: Likewise. * libgnat/a-ztcstr.adb: Likewise. * libgnat/a-ztcstr.ads: Likewise. * libgnat/a-ztdeau.adb: Likewise. * libgnat/a-ztdeau.ads: Likewise. * libgnat/a-ztdeio.adb: Likewise. * libgnat/a-ztdeio__128.adb: Likewise. * libgnat/a-ztedit.adb: Likewise. * libgnat/a-ztedit.ads: Likewise. * libgnat/a-ztenau.adb: Likewise. * libgnat/a-ztenau.ads: Likewise. * libgnat/a-ztenio.adb: Likewise. * libgnat/a-ztexio.adb: Likewise. * libgnat/a-ztexio.ads: Likewise. * libgnat/a-ztfiau.adb: Likewise. * libgnat/a-ztfiau.ads: Likewise. * libgnat/a-ztfiio.adb: Likewise. * libgnat/a-ztfiio__128.adb: Likewise. * libgnat/a-ztflau.adb: Likewise. * libgnat/a-ztflau.ads: Likewise. * libgnat/a-ztflio.adb: Likewise. * libgnat/a-ztgeau.adb: Likewise. * libgnat/a-ztgeau.ads: Likewise. * libgnat/a-ztinau.adb: Likewise. * libgnat/a-ztinau.ads: Likewise. * libgnat/a-ztinio.adb: Likewise. * libgnat/a-ztinio__128.adb: Likewise. * libgnat/a-ztmoio.adb: Likewise. * libgnat/a-ztmoio__128.adb: Likewise. * libgnat/a-zttest.adb: Likewise. * libgnat/a-zzboio.adb: Likewise. * libgnat/g-allein.ads: Likewise. * libgnat/g-alleve.adb: Likewise. * libgnat/g-alleve.ads: Likewise. * libgnat/g-alleve__hard.adb: Likewise. * libgnat/g-alleve__hard.ads: Likewise. * libgnat/g-altcon.adb: Likewise. * libgnat/g-altcon.ads: Likewise. * libgnat/g-altive.ads: Likewise. * libgnat/g-alveop.adb: Likewise. * libgnat/g-alveop.ads: Likewise. * libgnat/g-alvety.ads: Likewise. * libgnat/g-alvevi.ads: Likewise. * libgnat/g-arrspl.adb: Likewise. * libgnat/g-arrspl.ads: Likewise. * libgnat/g-awk.adb: Likewise. * libgnat/g-awk.ads: Likewise. * libgnat/g-binenv.adb: Likewise. * libgnat/g-binenv.ads: Likewise. * libgnat/g-brapre.ads: Likewise. * libgnat/g-bubsor.adb: Likewise. * libgnat/g-bubsor.ads: Likewise. * libgnat/g-busora.adb: Likewise. * libgnat/g-busora.ads: Likewise. * libgnat/g-busorg.adb: Likewise. * libgnat/g-busorg.ads: Likewise. * libgnat/g-byorma.adb: Likewise. * libgnat/g-byorma.ads: Likewise. * libgnat/g-bytswa.adb: Likewise. * libgnat/g-bytswa.ads: Likewise. * libgnat/g-calend.adb: Likewise. * libgnat/g-calend.ads: Likewise. * libgnat/g-casuti.adb: Likewise. * libgnat/g-casuti.ads: Likewise. * libgnat/g-catiio.adb: Likewise. * libgnat/g-catiio.ads: Likewise. * libgnat/g-cgi.adb: Likewise. * libgnat/g-cgi.ads: Likewise. * libgnat/g-cgicoo.adb: Likewise. * libgnat/g-cgicoo.ads: Likewise. * libgnat/g-cgideb.adb: Likewise. * libgnat/g-cgideb.ads: Likewise. * libgnat/g-comlin.adb: Likewise. * libgnat/g-comlin.ads: Likewise. * libgnat/g-comver.adb: Likewise. * libgnat/g-comver.ads: Likewise. * libgnat/g-cppexc.adb: Likewise. * libgnat/g-cppexc.ads: Likewise. * libgnat/g-crc32.adb: Likewise. * libgnat/g-crc32.ads: Likewise. * libgnat/g-ctrl_c.adb: Likewise. * libgnat/g-ctrl_c.ads: Likewise. * libgnat/g-curexc.ads: Likewise. * libgnat/g-debpoo.adb: Likewise. * libgnat/g-debpoo.ads: Likewise. * libgnat/g-debuti.adb: Likewise. * libgnat/g-debuti.ads: Likewise. * libgnat/g-decstr.adb: Likewise. * libgnat/g-decstr.ads: Likewise. * libgnat/g-deutst.ads: Likewise. * libgnat/g-diopit.adb: Likewise. * libgnat/g-diopit.ads: Likewise. * libgnat/g-dirope.adb: Likewise. * libgnat/g-dirope.ads: Likewise. * libgnat/g-dynhta.adb: Likewise. * libgnat/g-dynhta.ads: Likewise. * libgnat/g-dyntab.adb: Likewise. * libgnat/g-dyntab.ads: Likewise. * libgnat/g-eacodu.adb: Likewise. * libgnat/g-encstr.adb: Likewise. * libgnat/g-encstr.ads: Likewise. * libgnat/g-enutst.ads: Likewise. * libgnat/g-excact.adb: Likewise. * libgnat/g-excact.ads: Likewise. * libgnat/g-except.ads: Likewise. * libgnat/g-exctra.adb: Likewise. * libgnat/g-exctra.ads: Likewise. * libgnat/g-expect.adb: Likewise. * libgnat/g-expect.ads: Likewise. * libgnat/g-exptty.adb: Likewise. * libgnat/g-exptty.ads: Likewise. * libgnat/g-flocon.ads: Likewise. * libgnat/g-forstr.adb: Likewise. * libgnat/g-forstr.ads: Likewise. * libgnat/g-graphs.adb: Likewise. * libgnat/g-graphs.ads: Likewise. * libgnat/g-heasor.adb: Likewise. * libgnat/g-heasor.ads: Likewise. * libgnat/g-hesora.adb: Likewise. * libgnat/g-hesora.ads: Likewise. * libgnat/g-hesorg.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/g-io_aux.ads: Likewise. * libgnat/g-lists.adb: Likewise. * libgnat/g-lists.ads: Likewise. * libgnat/g-locfil.adb: Likewise. * libgnat/g-locfil.ads: Likewise. * libgnat/g-mbdira.adb: Likewise. * libgnat/g-mbdira.ads: Likewise. * libgnat/g-mbflra.adb: Likewise. * libgnat/g-mbflra.ads: Likewise. * libgnat/g-md5.adb: Likewise. * libgnat/g-md5.ads: Likewise. * libgnat/g-memdum.adb: Likewise. * libgnat/g-memdum.ads: Likewise. * libgnat/g-moreex.adb: Likewise. * libgnat/g-moreex.ads: Likewise. * libgnat/g-os_lib.adb: Likewise. * libgnat/g-os_lib.ads: Likewise. * libgnat/g-pehage.adb: Likewise. * libgnat/g-pehage.ads: Likewise. * libgnat/g-rannum.adb: Likewise. * libgnat/g-rannum.ads: Likewise. * libgnat/g-regexp.adb: Likewise. * libgnat/g-regexp.ads: Likewise. * libgnat/g-regist.adb: Likewise. * libgnat/g-regist.ads: Likewise. * libgnat/g-regpat.adb: Likewise. * libgnat/g-regpat.ads: Likewise. * libgnat/g-rewdat.adb: Likewise. * libgnat/g-rewdat.ads: Likewise. * libgnat/g-sechas.adb: Likewise. * libgnat/g-sechas.ads: Likewise. * libgnat/g-sehamd.adb: Likewise. * libgnat/g-sehamd.ads: Likewise. * libgnat/g-sehash.adb: Likewise. * libgnat/g-sehash.ads: Likewise. * libgnat/g-sercom.adb: Likewise. * libgnat/g-sercom.ads: Likewise. * libgnat/g-sercom__linux.adb: Likewise. * libgnat/g-sercom__mingw.adb: Likewise. * libgnat/g-sestin.ads: Likewise. * libgnat/g-sets.adb: Likewise. * libgnat/g-sets.ads: Likewise. * libgnat/g-sha1.adb: Likewise. * libgnat/g-sha1.ads: Likewise. * libgnat/g-sha224.ads: Likewise. * libgnat/g-sha256.ads: Likewise. * libgnat/g-sha384.ads: Likewise. * libgnat/g-sha512.ads: Likewise. * libgnat/g-shsh32.adb: Likewise. * libgnat/g-shsh32.ads: Likewise. * libgnat/g-shsh64.adb: Likewise. * libgnat/g-shsh64.ads: Likewise. * libgnat/g-shshco.adb: Likewise. * libgnat/g-shshco.ads: Likewise. * libgnat/g-soccon.ads: Likewise. * libgnat/g-socket.adb: Likewise. * libgnat/g-socket.ads: Likewise. * libgnat/g-socket__dummy.adb: Likewise. * libgnat/g-socket__dummy.ads: Likewise. * libgnat/g-socpol.adb: Likewise. * libgnat/g-socpol.ads: Likewise. * libgnat/g-socpol__dummy.adb: Likewise. * libgnat/g-socpol__dummy.ads: Likewise. * libgnat/g-socthi.adb: Likewise. * libgnat/g-socthi.ads: Likewise. * libgnat/g-socthi__dummy.adb: Likewise. * libgnat/g-socthi__dummy.ads: Likewise. * libgnat/g-socthi__mingw.adb: Likewise. * libgnat/g-socthi__mingw.ads: Likewise. * libgnat/g-socthi__vxworks.adb: Likewise. * libgnat/g-socthi__vxworks.ads: Likewise. * libgnat/g-soliop.ads: Likewise. * libgnat/g-soliop__lynxos.ads: Likewise. * libgnat/g-soliop__mingw.ads: Likewise. * libgnat/g-soliop__qnx.ads: Likewise. * libgnat/g-soliop__solaris.ads: Likewise. * libgnat/g-sopowa.adb: Likewise. * libgnat/g-sopowa__mingw.adb: Likewise. * libgnat/g-sopowa__posix.adb: Likewise. * libgnat/g-sothco.adb: Likewise. * libgnat/g-sothco.ads: Likewise. * libgnat/g-sothco__dummy.adb: Likewise. * libgnat/g-sothco__dummy.ads: Likewise. * libgnat/g-souinf.ads: Likewise. * libgnat/g-spchge.adb: Likewise. * libgnat/g-spchge.ads: Likewise. * libgnat/g-speche.adb: Likewise. * libgnat/g-speche.ads: Likewise. * libgnat/g-spipat.adb: Likewise. * libgnat/g-spipat.ads: Likewise. * libgnat/g-spitbo.adb: Likewise. * libgnat/g-spitbo.ads: Likewise. * libgnat/g-spogwa.adb: Likewise. * libgnat/g-spogwa.ads: Likewise. * libgnat/g-sptabo.ads: Likewise. * libgnat/g-sptain.ads: Likewise. * libgnat/g-sptavs.ads: Likewise. * libgnat/g-sse.ads: Likewise. * libgnat/g-ssvety.ads: Likewise. * libgnat/g-sthcso.adb: Likewise. * libgnat/g-stheme.adb: Likewise. * libgnat/g-strhas.ads: Likewise. * libgnat/g-string.adb: Likewise. * libgnat/g-string.ads: Likewise. * libgnat/g-strspl.ads: Likewise. * libgnat/g-stseme.adb: Likewise. * libgnat/g-stsifd__sockets.adb: Likewise. * libgnat/g-table.adb: Likewise. * libgnat/g-table.ads: Likewise. * libgnat/g-tasloc.adb: Likewise. * libgnat/g-tasloc.ads: Likewise. * libgnat/g-timsta.adb: Likewise. * libgnat/g-timsta.ads: Likewise. * libgnat/g-traceb.adb: Likewise. * libgnat/g-traceb.ads: Likewise. * libgnat/g-trasym.adb: Likewise. * libgnat/g-trasym.ads: Likewise. * libgnat/g-tty.adb: Likewise. * libgnat/g-tty.ads: Likewise. * libgnat/g-u3spch.adb: Likewise. * libgnat/g-u3spch.ads: Likewise. * libgnat/g-utf_32.adb: Likewise. * libgnat/g-utf_32.ads: Likewise. * libgnat/g-wispch.adb: Likewise. * libgnat/g-wispch.ads: Likewise. * libgnat/g-wistsp.ads: Likewise. * libgnat/g-zspche.adb: Likewise. * libgnat/g-zspche.ads: Likewise. * libgnat/g-zstspl.ads: Likewise. * libgnat/gnat.ads: Likewise. * libgnat/i-c.adb: Likewise. * libgnat/i-cexten.ads: Likewise. * libgnat/i-cexten__128.ads: Likewise. * libgnat/i-cobol.adb: Likewise. * libgnat/i-cobol.ads: Likewise. * libgnat/i-cpoint.adb: Likewise. * libgnat/i-cpoint.ads: Likewise. * libgnat/i-cstrea.adb: Likewise. * libgnat/i-cstrea.ads: Likewise. * libgnat/i-cstrin.adb: Likewise. * libgnat/i-cstrin.ads: Likewise. * libgnat/i-fortra.adb: Likewise. * libgnat/i-pacdec.adb: Likewise. * libgnat/i-pacdec.ads: Likewise. * libgnat/i-vxwoio.adb: Likewise. * libgnat/i-vxwoio.ads: Likewise. * libgnat/i-vxwork.ads: Likewise. * libgnat/i-vxwork__x86.ads: Likewise. * libgnat/interfac.ads: Likewise. * libgnat/interfac__2020.ads: Likewise. * libgnat/memtrack.adb: Likewise. * libgnat/s-addima.adb: Likewise. * libgnat/s-addima.ads: Likewise. * libgnat/s-addope.adb: Likewise. * libgnat/s-addope.ads: Likewise. * libgnat/s-aoinar.adb: Likewise. * libgnat/s-aoinar.ads: Likewise. * libgnat/s-aomoar.adb: Likewise. * libgnat/s-aomoar.ads: Likewise. * libgnat/s-aotase.adb: Likewise. * libgnat/s-aotase.ads: Likewise. * libgnat/s-aridou.adb: Likewise. * libgnat/s-aridou.ads: Likewise. * libgnat/s-arit128.adb: Likewise. * libgnat/s-arit128.ads: Likewise. * libgnat/s-arit32.adb: Likewise. * libgnat/s-arit32.ads: Likewise. * libgnat/s-arit64.adb: Likewise. * libgnat/s-arit64.ads: Likewise. * libgnat/s-assert.adb: Likewise. * libgnat/s-assert.ads: Likewise. * libgnat/s-atacco.adb: Likewise. * libgnat/s-atacco.ads: 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-atopri.adb: Likewise. * libgnat/s-atopri.ads: Likewise. * libgnat/s-auxdec.adb: Likewise. * libgnat/s-auxdec.ads: Likewise. * libgnat/s-bignum.adb: Likewise. * libgnat/s-bignum.ads: Likewise. * libgnat/s-bitfie.ads: Likewise. * libgnat/s-bitops.adb: Likewise. * libgnat/s-bitops.ads: Likewise. * libgnat/s-bituti.adb: Likewise. * libgnat/s-bituti.ads: Likewise. * libgnat/s-boarop.ads: Likewise. * libgnat/s-boustr.adb: Likewise. * libgnat/s-boustr.ads: Likewise. * libgnat/s-bytswa.ads: Likewise. * libgnat/s-carsi8.adb: Likewise. * libgnat/s-carsi8.ads: Likewise. * libgnat/s-carun8.adb: Likewise. * libgnat/s-carun8.ads: Likewise. * libgnat/s-casi128.adb: Likewise. * libgnat/s-casi128.ads: Likewise. * libgnat/s-casi16.adb: Likewise. * libgnat/s-casi16.ads: Likewise. * libgnat/s-casi32.adb: Likewise. * libgnat/s-casi32.ads: Likewise. * libgnat/s-casi64.adb: Likewise. * libgnat/s-casi64.ads: Likewise. * libgnat/s-casuti.adb: Likewise. * libgnat/s-casuti.ads: Likewise. * libgnat/s-caun128.adb: Likewise. * libgnat/s-caun128.ads: Likewise. * libgnat/s-caun16.adb: Likewise. * libgnat/s-caun16.ads: Likewise. * libgnat/s-caun32.adb: Likewise. * libgnat/s-caun32.ads: Likewise. * libgnat/s-caun64.adb: Likewise. * libgnat/s-caun64.ads: Likewise. * libgnat/s-chepoo.ads: Likewise. * libgnat/s-commun.adb: Likewise. * libgnat/s-commun.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-dfmkio.ads: Likewise. * libgnat/s-dfmopr.ads: Likewise. * libgnat/s-dgmgop.ads: Likewise. * libgnat/s-diflio.adb: Likewise. * libgnat/s-diflio.ads: Likewise. * libgnat/s-diflmk.ads: Likewise. * libgnat/s-digemk.ads: Likewise. * libgnat/s-diinio.adb: Likewise. * libgnat/s-diinio.ads: Likewise. * libgnat/s-dilomk.ads: Likewise. * libgnat/s-dim.ads: Likewise. * libgnat/s-dimkio.ads: Likewise. * libgnat/s-dimmks.ads: Likewise. * libgnat/s-direio.adb: Likewise. * libgnat/s-direio.ads: Likewise. * libgnat/s-dlmkio.ads: Likewise. * libgnat/s-dlmopr.ads: Likewise. * libgnat/s-dmotpr.ads: Likewise. * libgnat/s-dsaser.ads: Likewise. * libgnat/s-dwalin.adb: Likewise. * libgnat/s-dwalin.ads: Likewise. * libgnat/s-elaall.adb: Likewise. * libgnat/s-elaall.ads: Likewise. * libgnat/s-excdeb.adb: Likewise. * libgnat/s-excdeb.ads: Likewise. * libgnat/s-except.adb: Likewise. * libgnat/s-except.ads: Likewise. * libgnat/s-excmac__arm.adb: Likewise. * libgnat/s-excmac__arm.ads: Likewise. * libgnat/s-excmac__gcc.adb: Likewise. * libgnat/s-excmac__gcc.ads: Likewise. * libgnat/s-exctab.adb: Likewise. * libgnat/s-exctab.ads: Likewise. * libgnat/s-exctra.adb: Likewise. * libgnat/s-exctra.ads: Likewise. * libgnat/s-exnint.adb: Likewise. * libgnat/s-exnint.ads: Likewise. * libgnat/s-exnllf.adb: Likewise. * libgnat/s-exnllf.ads: Likewise. * libgnat/s-exnlli.adb: Likewise. * libgnat/s-exnlli.ads: Likewise. * libgnat/s-exnllli.ads: Likewise. * libgnat/s-expint.adb: Likewise. * libgnat/s-expint.ads: Likewise. * libgnat/s-explli.adb: Likewise. * libgnat/s-explli.ads: Likewise. * libgnat/s-expllli.ads: Likewise. * libgnat/s-explllu.ads: Likewise. * libgnat/s-expllu.adb: Likewise. * libgnat/s-expllu.ads: Likewise. * libgnat/s-expmod.adb: Likewise. * libgnat/s-expmod.ads: Likewise. * libgnat/s-exponn.adb: Likewise. * libgnat/s-exponn.ads: Likewise. * libgnat/s-expont.adb: Likewise. * libgnat/s-expont.ads: Likewise. * libgnat/s-exponu.adb: Likewise. * libgnat/s-exponu.ads: Likewise. * libgnat/s-expuns.adb: Likewise. * libgnat/s-expuns.ads: Likewise. * libgnat/s-fatflt.ads: Likewise. * libgnat/s-fatgen.adb: Likewise. * libgnat/s-fatgen.ads: Likewise. * libgnat/s-fatlfl.ads: Likewise. * libgnat/s-fatllf.ads: Likewise. * libgnat/s-ficobl.ads: Likewise. * libgnat/s-filatt.ads: Likewise. * libgnat/s-fileio.adb: Likewise. * libgnat/s-fileio.ads: Likewise. * libgnat/s-finmas.adb: Likewise. * libgnat/s-finmas.ads: Likewise. * libgnat/s-finroo.adb: Likewise. * libgnat/s-finroo.ads: Likewise. * libgnat/s-flocon.adb: Likewise. * libgnat/s-flocon.ads: Likewise. * libgnat/s-flocon__none.adb: Likewise. * libgnat/s-fode128.ads: Likewise. * libgnat/s-fode32.ads: Likewise. * libgnat/s-fode64.ads: Likewise. * libgnat/s-fofi128.ads: Likewise. * libgnat/s-fofi32.ads: Likewise. * libgnat/s-fofi64.ads: Likewise. * libgnat/s-fore_d.adb: Likewise. * libgnat/s-fore_d.ads: Likewise. * libgnat/s-fore_f.adb: Likewise. * libgnat/s-fore_f.ads: Likewise. * libgnat/s-forrea.adb: Likewise. * libgnat/s-forrea.ads: Likewise. * libgnat/s-gearop.adb: Likewise. * libgnat/s-gearop.ads: Likewise. * libgnat/s-genbig.adb: Likewise. * libgnat/s-genbig.ads: Likewise. * libgnat/s-geveop.adb: Likewise. * libgnat/s-geveop.ads: Likewise. * libgnat/s-gloloc.adb: Likewise. * libgnat/s-gloloc.ads: Likewise. * libgnat/s-gloloc__mingw.adb: Likewise. * libgnat/s-htable.adb: Likewise. * libgnat/s-htable.ads: Likewise. * libgnat/s-imageb.adb: Likewise. * libgnat/s-imageb.ads: Likewise. * libgnat/s-imaged.adb: Likewise. * libgnat/s-imaged.ads: Likewise. * libgnat/s-imagef.adb: Likewise. * libgnat/s-imagef.ads: Likewise. * libgnat/s-imagei.adb: Likewise. * libgnat/s-imagei.ads: Likewise. * libgnat/s-imageu.adb: Likewise. * libgnat/s-imageu.ads: Likewise. * libgnat/s-imagew.adb: Likewise. * libgnat/s-imagew.ads: Likewise. * libgnat/s-imde128.ads: Likewise. * libgnat/s-imde32.ads: Likewise. * libgnat/s-imde64.ads: Likewise. * libgnat/s-imenne.adb: Likewise. * libgnat/s-imenne.ads: Likewise. * libgnat/s-imfi128.ads: Likewise. * libgnat/s-imfi32.ads: Likewise. * libgnat/s-imfi64.ads: Likewise. * libgnat/s-imgbiu.adb: Likewise. * libgnat/s-imgbiu.ads: Likewise. * libgnat/s-imgboo.adb: Likewise. * libgnat/s-imgboo.ads: Likewise. * libgnat/s-imgcha.adb: Likewise. * libgnat/s-imgcha.ads: Likewise. * libgnat/s-imgenu.adb: Likewise. * libgnat/s-imgenu.ads: Likewise. * libgnat/s-imgint.adb: Likewise. * libgnat/s-imgint.ads: Likewise. * libgnat/s-imgllb.adb: Likewise. * libgnat/s-imgllb.ads: Likewise. * libgnat/s-imglli.adb: Likewise. * libgnat/s-imglli.ads: Likewise. * libgnat/s-imglllb.ads: Likewise. * libgnat/s-imgllli.ads: Likewise. * libgnat/s-imglllu.ads: Likewise. * libgnat/s-imglllw.ads: Likewise. * libgnat/s-imgllu.adb: Likewise. * libgnat/s-imgllu.ads: Likewise. * libgnat/s-imgllw.adb: Likewise. * libgnat/s-imgllw.ads: Likewise. * libgnat/s-imgrea.adb: Likewise. * libgnat/s-imgrea.ads: Likewise. * libgnat/s-imguns.adb: Likewise. * libgnat/s-imguns.ads: Likewise. * libgnat/s-imguti.adb: Likewise. * libgnat/s-imguti.ads: Likewise. * libgnat/s-imgwch.adb: Likewise. * libgnat/s-imgwch.ads: Likewise. * libgnat/s-imgwiu.adb: Likewise. * libgnat/s-imgwiu.ads: Likewise. * libgnat/s-io.adb: Likewise. * libgnat/s-io.ads: Likewise. * libgnat/s-llflex.ads: Likewise. * libgnat/s-maccod.ads: Likewise. * libgnat/s-mantis.adb: Likewise. * libgnat/s-mantis.ads: Likewise. * libgnat/s-mastop.adb: Likewise. * libgnat/s-mastop.ads: Likewise. * libgnat/s-memcop.ads: Likewise. * libgnat/s-memory.adb: Likewise. * libgnat/s-memory.ads: Likewise. * libgnat/s-mmap.adb: Likewise. * libgnat/s-mmap.ads: Likewise. * libgnat/s-mmauni__long.ads: Likewise. * libgnat/s-mmosin__mingw.adb: Likewise. * libgnat/s-mmosin__mingw.ads: Likewise. * libgnat/s-mmosin__unix.adb: Likewise. * libgnat/s-mmosin__unix.ads: Likewise. * libgnat/s-multip.adb: Likewise. * libgnat/s-objrea.adb: Likewise. * libgnat/s-objrea.ads: Likewise. * libgnat/s-optide.adb: Likewise. * libgnat/s-os_lib.adb: Likewise. * libgnat/s-os_lib.ads: Likewise. * libgnat/s-osprim.ads: Likewise. * libgnat/s-osprim__darwin.adb: Likewise. * libgnat/s-osprim__lynxos.ads: Likewise. * libgnat/s-osprim__mingw.adb: Likewise. * libgnat/s-osprim__posix.adb: Likewise. * libgnat/s-osprim__posix2008.adb: 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-pack05.ads: Likewise. * libgnat/s-pack06.adb: Likewise. * libgnat/s-pack06.ads: Likewise. * libgnat/s-pack07.adb: Likewise. * libgnat/s-pack07.ads: Likewise. * libgnat/s-pack09.adb: Likewise. * libgnat/s-pack09.ads: Likewise. * libgnat/s-pack10.adb: Likewise. * libgnat/s-pack10.ads: Likewise. * libgnat/s-pack100.adb: Likewise. * libgnat/s-pack100.ads: Likewise. * libgnat/s-pack101.adb: Likewise. * libgnat/s-pack101.ads: Likewise. * libgnat/s-pack102.adb: Likewise. * libgnat/s-pack102.ads: Likewise. * libgnat/s-pack103.adb: Likewise. * libgnat/s-pack103.ads: Likewise. * libgnat/s-pack104.adb: Likewise. * libgnat/s-pack104.ads: Likewise. * libgnat/s-pack105.adb: Likewise. * libgnat/s-pack105.ads: Likewise. * libgnat/s-pack106.adb: Likewise. * libgnat/s-pack106.ads: Likewise. * libgnat/s-pack107.adb: Likewise. * libgnat/s-pack107.ads: Likewise. * libgnat/s-pack108.adb: Likewise. * libgnat/s-pack108.ads: Likewise. * libgnat/s-pack109.adb: Likewise. * libgnat/s-pack109.ads: Likewise. * libgnat/s-pack11.adb: Likewise. * libgnat/s-pack11.ads: Likewise. * libgnat/s-pack110.adb: Likewise. * libgnat/s-pack110.ads: Likewise. * libgnat/s-pack111.adb: Likewise. * libgnat/s-pack111.ads: Likewise. * libgnat/s-pack112.adb: Likewise. * libgnat/s-pack112.ads: Likewise. * libgnat/s-pack113.adb: Likewise. * libgnat/s-pack113.ads: Likewise. * libgnat/s-pack114.adb: Likewise. * libgnat/s-pack114.ads: Likewise. * libgnat/s-pack115.adb: Likewise. * libgnat/s-pack115.ads: Likewise. * libgnat/s-pack116.adb: Likewise. * libgnat/s-pack116.ads: Likewise. * libgnat/s-pack117.adb: Likewise. * libgnat/s-pack117.ads: Likewise. * libgnat/s-pack118.adb: Likewise. * libgnat/s-pack118.ads: Likewise. * libgnat/s-pack119.adb: Likewise. * libgnat/s-pack119.ads: Likewise. * libgnat/s-pack12.adb: Likewise. * libgnat/s-pack12.ads: Likewise. * libgnat/s-pack120.adb: Likewise. * libgnat/s-pack120.ads: Likewise. * libgnat/s-pack121.adb: Likewise. * libgnat/s-pack121.ads: Likewise. * libgnat/s-pack122.adb: Likewise. * libgnat/s-pack122.ads: Likewise. * libgnat/s-pack123.adb: Likewise. * libgnat/s-pack123.ads: Likewise. * libgnat/s-pack124.adb: Likewise. * libgnat/s-pack124.ads: Likewise. * libgnat/s-pack125.adb: Likewise. * libgnat/s-pack125.ads: Likewise. * libgnat/s-pack126.adb: Likewise. * libgnat/s-pack126.ads: Likewise. * libgnat/s-pack127.adb: Likewise. * libgnat/s-pack127.ads: Likewise. * libgnat/s-pack13.adb: Likewise. * libgnat/s-pack13.ads: Likewise. * libgnat/s-pack14.adb: Likewise. * libgnat/s-pack14.ads: Likewise. * libgnat/s-pack15.adb: Likewise. * libgnat/s-pack15.ads: Likewise. * libgnat/s-pack17.adb: Likewise. * libgnat/s-pack17.ads: Likewise. * libgnat/s-pack18.adb: Likewise. * libgnat/s-pack18.ads: Likewise. * libgnat/s-pack19.adb: Likewise. * libgnat/s-pack19.ads: Likewise. * libgnat/s-pack20.adb: Likewise. * libgnat/s-pack20.ads: Likewise. * libgnat/s-pack21.adb: Likewise. * libgnat/s-pack21.ads: Likewise. * libgnat/s-pack22.adb: Likewise. * libgnat/s-pack22.ads: Likewise. * libgnat/s-pack23.adb: Likewise. * libgnat/s-pack23.ads: Likewise. * libgnat/s-pack24.adb: Likewise. * libgnat/s-pack24.ads: Likewise. * libgnat/s-pack25.adb: Likewise. * libgnat/s-pack25.ads: Likewise. * libgnat/s-pack26.adb: Likewise. * libgnat/s-pack26.ads: Likewise. * libgnat/s-pack27.adb: Likewise. * libgnat/s-pack27.ads: Likewise. * libgnat/s-pack28.adb: Likewise. * libgnat/s-pack28.ads: Likewise. * libgnat/s-pack29.adb: Likewise. * libgnat/s-pack29.ads: Likewise. * libgnat/s-pack30.adb: Likewise. * libgnat/s-pack30.ads: Likewise. * libgnat/s-pack31.adb: Likewise. * libgnat/s-pack31.ads: Likewise. * libgnat/s-pack33.adb: Likewise. * libgnat/s-pack33.ads: Likewise. * libgnat/s-pack34.adb: Likewise. * libgnat/s-pack34.ads: Likewise. * libgnat/s-pack35.adb: Likewise. * libgnat/s-pack35.ads: Likewise. * libgnat/s-pack36.adb: Likewise. * libgnat/s-pack36.ads: Likewise. * libgnat/s-pack37.adb: Likewise. * libgnat/s-pack37.ads: Likewise. * libgnat/s-pack38.adb: Likewise. * libgnat/s-pack38.ads: Likewise. * libgnat/s-pack39.adb: Likewise. * libgnat/s-pack39.ads: Likewise. * libgnat/s-pack40.adb: Likewise. * libgnat/s-pack40.ads: Likewise. * libgnat/s-pack41.adb: Likewise. * libgnat/s-pack41.ads: Likewise. * libgnat/s-pack42.adb: Likewise. * libgnat/s-pack42.ads: Likewise. * libgnat/s-pack43.adb: Likewise. * libgnat/s-pack43.ads: Likewise. * libgnat/s-pack44.adb: Likewise. * libgnat/s-pack44.ads: Likewise. * libgnat/s-pack45.adb: Likewise. * libgnat/s-pack45.ads: Likewise. * libgnat/s-pack46.adb: Likewise. * libgnat/s-pack46.ads: Likewise. * libgnat/s-pack47.adb: Likewise. * libgnat/s-pack47.ads: Likewise. * libgnat/s-pack48.adb: Likewise. * libgnat/s-pack48.ads: Likewise. * libgnat/s-pack49.adb: Likewise. * libgnat/s-pack49.ads: Likewise. * libgnat/s-pack50.adb: Likewise. * libgnat/s-pack50.ads: Likewise. * libgnat/s-pack51.adb: Likewise. * libgnat/s-pack51.ads: Likewise. * libgnat/s-pack52.adb: Likewise. * libgnat/s-pack52.ads: Likewise. * libgnat/s-pack53.adb: Likewise. * libgnat/s-pack53.ads: Likewise. * libgnat/s-pack54.adb: Likewise. * libgnat/s-pack54.ads: Likewise. * libgnat/s-pack55.adb: Likewise. * libgnat/s-pack55.ads: Likewise. * libgnat/s-pack56.adb: Likewise. * libgnat/s-pack56.ads: Likewise. * libgnat/s-pack57.adb: Likewise. * libgnat/s-pack57.ads: Likewise. * libgnat/s-pack58.adb: Likewise. * libgnat/s-pack58.ads: Likewise. * libgnat/s-pack59.adb: Likewise. * libgnat/s-pack59.ads: Likewise. * libgnat/s-pack60.adb: Likewise. * libgnat/s-pack60.ads: Likewise. * libgnat/s-pack61.adb: Likewise. * libgnat/s-pack61.ads: Likewise. * libgnat/s-pack62.adb: Likewise. * libgnat/s-pack62.ads: Likewise. * libgnat/s-pack63.adb: Likewise. * libgnat/s-pack63.ads: Likewise. * libgnat/s-pack65.adb: Likewise. * libgnat/s-pack65.ads: Likewise. * libgnat/s-pack66.adb: Likewise. * libgnat/s-pack66.ads: Likewise. * libgnat/s-pack67.adb: Likewise. * libgnat/s-pack67.ads: Likewise. * libgnat/s-pack68.adb: Likewise. * libgnat/s-pack68.ads: Likewise. * libgnat/s-pack69.adb: Likewise. * libgnat/s-pack69.ads: Likewise. * libgnat/s-pack70.adb: Likewise. * libgnat/s-pack70.ads: Likewise. * libgnat/s-pack71.adb: Likewise. * libgnat/s-pack71.ads: Likewise. * libgnat/s-pack72.adb: Likewise. * libgnat/s-pack72.ads: Likewise. * libgnat/s-pack73.adb: Likewise. * libgnat/s-pack73.ads: Likewise. * libgnat/s-pack74.adb: Likewise. * libgnat/s-pack74.ads: Likewise. * libgnat/s-pack75.adb: Likewise. * libgnat/s-pack75.ads: Likewise. * libgnat/s-pack76.adb: Likewise. * libgnat/s-pack76.ads: Likewise. * libgnat/s-pack77.adb: Likewise. * libgnat/s-pack77.ads: Likewise. * libgnat/s-pack78.adb: Likewise. * libgnat/s-pack78.ads: Likewise. * libgnat/s-pack79.adb: Likewise. * libgnat/s-pack79.ads: Likewise. * libgnat/s-pack80.adb: Likewise. * libgnat/s-pack80.ads: Likewise. * libgnat/s-pack81.adb: Likewise. * libgnat/s-pack81.ads: Likewise. * libgnat/s-pack82.adb: Likewise. * libgnat/s-pack82.ads: Likewise. * libgnat/s-pack83.adb: Likewise. * libgnat/s-pack83.ads: Likewise. * libgnat/s-pack84.adb: Likewise. * libgnat/s-pack84.ads: Likewise. * libgnat/s-pack85.adb: Likewise. * libgnat/s-pack85.ads: Likewise. * libgnat/s-pack86.adb: Likewise. * libgnat/s-pack86.ads: Likewise. * libgnat/s-pack87.adb: Likewise. * libgnat/s-pack87.ads: Likewise. * libgnat/s-pack88.adb: Likewise. * libgnat/s-pack88.ads: Likewise. * libgnat/s-pack89.adb: Likewise. * libgnat/s-pack89.ads: Likewise. * libgnat/s-pack90.adb: Likewise. * libgnat/s-pack90.ads: Likewise. * libgnat/s-pack91.adb: Likewise. * libgnat/s-pack91.ads: Likewise. * libgnat/s-pack92.adb: Likewise. * libgnat/s-pack92.ads: Likewise. * libgnat/s-pack93.adb: Likewise. * libgnat/s-pack93.ads: Likewise. * libgnat/s-pack94.adb: Likewise. * libgnat/s-pack94.ads: Likewise. * libgnat/s-pack95.adb: Likewise. * libgnat/s-pack95.ads: Likewise. * libgnat/s-pack96.adb: Likewise. * libgnat/s-pack96.ads: Likewise. * libgnat/s-pack97.adb: Likewise. * libgnat/s-pack97.ads: Likewise. * libgnat/s-pack98.adb: Likewise. * libgnat/s-pack98.ads: Likewise. * libgnat/s-pack99.adb: Likewise. * libgnat/s-pack99.ads: Likewise. * libgnat/s-parame.adb: Likewise. * libgnat/s-parame.ads: Likewise. * libgnat/s-parame__ae653.ads: Likewise. * libgnat/s-parame__hpux.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-pooglo.adb: Likewise. * libgnat/s-pooglo.ads: Likewise. * libgnat/s-pooloc.adb: Likewise. * libgnat/s-pooloc.ads: Likewise. * libgnat/s-poosiz.adb: Likewise. * libgnat/s-poosiz.ads: Likewise. * libgnat/s-powflt.ads: Likewise. * libgnat/s-powlfl.ads: Likewise. * libgnat/s-powllf.ads: Likewise. * libgnat/s-purexc.ads: Likewise. * libgnat/s-putaim.adb: Likewise. * libgnat/s-putaim.ads: Likewise. * libgnat/s-putima.adb: Likewise. * libgnat/s-putima.ads: Likewise. * libgnat/s-rannum.adb: Likewise. * libgnat/s-rannum.ads: Likewise. * libgnat/s-ransee.adb: Likewise. * libgnat/s-ransee.ads: Likewise. * libgnat/s-regexp.adb: Likewise. * libgnat/s-regexp.ads: Likewise. * libgnat/s-regpat.adb: Likewise. * libgnat/s-regpat.ads: Likewise. * libgnat/s-resfil.adb: Likewise. * libgnat/s-resfil.ads: Likewise. * libgnat/s-restri.adb: Likewise. * libgnat/s-restri.ads: Likewise. * libgnat/s-rident.ads: Likewise. * libgnat/s-rpc.adb: Likewise. * libgnat/s-rpc.ads: Likewise. * libgnat/s-scaval.adb: Likewise. * libgnat/s-scaval.ads: Likewise. * libgnat/s-scaval__128.adb: Likewise. * libgnat/s-scaval__128.ads: Likewise. * libgnat/s-secsta.adb: Likewise. * libgnat/s-secsta.ads: Likewise. * libgnat/s-sequio.adb: Likewise. * libgnat/s-sequio.ads: Likewise. * libgnat/s-shabig.ads: Likewise. * libgnat/s-shasto.adb: Likewise. * libgnat/s-shasto.ads: Likewise. * libgnat/s-soflin.adb: Likewise. * libgnat/s-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-stache.ads: Likewise. * libgnat/s-stalib.adb: Likewise. * libgnat/s-stalib.ads: Likewise. * libgnat/s-statxd.adb: Likewise. * libgnat/s-statxd.ads: Likewise. * libgnat/s-stausa.adb: Likewise. * libgnat/s-stausa.ads: Likewise. * libgnat/s-stchop.adb: Likewise. * libgnat/s-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-stopoo.adb: Likewise. * libgnat/s-stopoo.ads: Likewise. * libgnat/s-stposu.adb: Likewise. * libgnat/s-stposu.ads: Likewise. * libgnat/s-stratt.adb: Likewise. * libgnat/s-stratt.ads: Likewise. * libgnat/s-strcom.adb: Likewise. * libgnat/s-strcom.ads: Likewise. * libgnat/s-strhas.adb: 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-traceb__mastop.adb: Likewise. * libgnat/s-traent.adb: Likewise. * libgnat/s-traent.ads: Likewise. * libgnat/s-trasym.adb: Likewise. * libgnat/s-trasym.ads: Likewise. * libgnat/s-trasym__dwarf.adb: Likewise. * libgnat/s-tsmona.adb: Likewise. * libgnat/s-tsmona__linux.adb: Likewise. * libgnat/s-tsmona__mingw.adb: Likewise. * libgnat/s-unstyp.ads: Likewise. * libgnat/s-utf_32.adb: Likewise. * libgnat/s-utf_32.ads: Likewise. * libgnat/s-vade128.ads: Likewise. * libgnat/s-vade32.ads: Likewise. * libgnat/s-vade64.ads: Likewise. * libgnat/s-vafi128.ads: Likewise. * libgnat/s-vafi32.ads: Likewise. * libgnat/s-vafi64.ads: Likewise. * libgnat/s-valboo.adb: Likewise. * libgnat/s-valboo.ads: Likewise. * libgnat/s-valcha.adb: Likewise. * libgnat/s-valcha.ads: Likewise. * libgnat/s-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-vallfl.ads: Likewise. * libgnat/s-valllf.ads: Likewise. * libgnat/s-vallli.adb: Likewise. * libgnat/s-vallli.ads: Likewise. * libgnat/s-valllli.ads: Likewise. * libgnat/s-vallllu.ads: Likewise. * libgnat/s-valllu.adb: Likewise. * libgnat/s-valllu.ads: Likewise. * libgnat/s-valrea.adb: Likewise. * libgnat/s-valrea.ads: Likewise. * libgnat/s-valued.adb: Likewise. * libgnat/s-valued.ads: Likewise. * libgnat/s-valuef.adb: Likewise. * libgnat/s-valuef.ads: Likewise. * libgnat/s-valuei.adb: Likewise. * libgnat/s-valuei.ads: Likewise. * libgnat/s-valuer.adb: Likewise. * libgnat/s-valuer.ads: Likewise. * libgnat/s-valueu.adb: Likewise. * libgnat/s-valueu.ads: Likewise. * libgnat/s-valuns.adb: Likewise. * libgnat/s-valuns.ads: Likewise. * libgnat/s-valuti.adb: Likewise. * libgnat/s-valuti.ads: Likewise. * libgnat/s-valwch.adb: Likewise. * libgnat/s-valwch.ads: Likewise. * libgnat/s-veboop.adb: Likewise. * libgnat/s-veboop.ads: Likewise. * libgnat/s-vector.ads: Likewise. * libgnat/s-vercon.adb: Likewise. * libgnat/s-vercon.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. * libgnat/s-wchstw.adb: Likewise. * libgnat/s-wchstw.ads: Likewise. * libgnat/s-wchwts.adb: Likewise. * libgnat/s-wchwts.ads: Likewise. * libgnat/s-widboo.adb: Likewise. * libgnat/s-widboo.ads: Likewise. * libgnat/s-widcha.adb: Likewise. * libgnat/s-widcha.ads: Likewise. * libgnat/s-widenu.adb: Likewise. * libgnat/s-widenu.ads: Likewise. * libgnat/s-widint.ads: Likewise. * libgnat/s-widlli.adb: Likewise. * libgnat/s-widlli.ads: Likewise. * libgnat/s-widllli.ads: Likewise. * libgnat/s-widlllu.ads: Likewise. * libgnat/s-widllu.adb: Likewise. * libgnat/s-widllu.ads: Likewise. * libgnat/s-widthi.adb: Likewise. * libgnat/s-widthi.ads: Likewise. * libgnat/s-widthu.adb: Likewise. * libgnat/s-widthu.ads: Likewise. * libgnat/s-widuns.ads: Likewise. * libgnat/s-widwch.adb: Likewise. * libgnat/s-widwch.ads: Likewise. * libgnat/s-win32.ads: Likewise. * libgnat/s-winext.ads: Likewise. * libgnat/s-wwdcha.adb: Likewise. * libgnat/s-wwdcha.ads: Likewise. * libgnat/s-wwdenu.adb: Likewise. * libgnat/s-wwdenu.ads: Likewise. * libgnat/s-wwdwch.adb: Likewise. * libgnat/s-wwdwch.ads: Likewise. * libgnat/system-aix.ads: Likewise. * libgnat/system-darwin-arm.ads: Likewise. * libgnat/system-darwin-ppc.ads: Likewise. * libgnat/system-darwin-x86.ads: Likewise. * libgnat/system-djgpp.ads: Likewise. * libgnat/system-dragonfly-x86_64.ads: Likewise. * libgnat/system-freebsd.ads: Likewise. * libgnat/system-hpux-ia64.ads: Likewise. * libgnat/system-hpux.ads: Likewise. * libgnat/system-linux-alpha.ads: Likewise. * libgnat/system-linux-arm.ads: Likewise. * libgnat/system-linux-hppa.ads: Likewise. * libgnat/system-linux-ia64.ads: Likewise. * libgnat/system-linux-m68k.ads: Likewise. * libgnat/system-linux-mips.ads: Likewise. * libgnat/system-linux-ppc.ads: Likewise. * libgnat/system-linux-riscv.ads: Likewise. * libgnat/system-linux-s390.ads: Likewise. * libgnat/system-linux-sh4.ads: Likewise. * libgnat/system-linux-sparc.ads: Likewise. * libgnat/system-linux-x86.ads: Likewise. * libgnat/system-lynxos178-ppc.ads: Likewise. * libgnat/system-lynxos178-x86.ads: Likewise. * libgnat/system-mingw.ads: Likewise. * libgnat/system-qnx-aarch64.ads: Likewise. * libgnat/system-rtems.ads: Likewise. * libgnat/system-solaris-sparc.ads: Likewise. * libgnat/system-solaris-x86.ads: Likewise. * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise. * libgnat/system-vxworks-arm-rtp.ads: Likewise. * libgnat/system-vxworks-arm.ads: Likewise. * libgnat/system-vxworks-e500-kernel.ads: Likewise. * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise. * libgnat/system-vxworks-e500-rtp.ads: Likewise. * libgnat/system-vxworks-e500-vthread.ads: Likewise. * libgnat/system-vxworks-ppc-kernel.ads: Likewise. * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise. * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise. * libgnat/system-vxworks-ppc-rtp.ads: Likewise. * libgnat/system-vxworks-ppc-vthread.ads: Likewise. * libgnat/system-vxworks-ppc.ads: Likewise. * libgnat/system-vxworks-x86-kernel.ads: Likewise. * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise. * libgnat/system-vxworks-x86-rtp.ads: Likewise. * libgnat/system-vxworks-x86-vthread.ads: Likewise. * libgnat/system-vxworks-x86.ads: Likewise. * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-aarch64.ads: Likewise. * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-arm.ads: Likewise. * libgnat/system-vxworks7-e500-kernel.ads: Likewise. * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-e500-rtp.ads: Likewise. * libgnat/system-vxworks7-ppc-kernel.ads: Likewise. * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-ppc-rtp.ads: Likewise. * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise. * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-x86-kernel.ads: Likewise. * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise. * libgnat/system-vxworks7-x86-rtp.ads: Likewise. * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise. * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise. * link.c: Likewise. * live.adb: Likewise. * live.ads: Likewise. * locales.c: Likewise. * make.adb: Likewise. * make.ads: Likewise. * make_util.adb: Likewise. * make_util.ads: Likewise. * makeusg.adb: Likewise. * makeusg.ads: Likewise. * mdll-fil.adb: Likewise. * mdll-fil.ads: Likewise. * mdll-utl.adb: Likewise. * mdll-utl.ads: Likewise. * mdll.adb: Likewise. * mdll.ads: Likewise. * mingw32.h: Likewise. * mkdir.c: Likewise. * namet-sp.adb: Likewise. * namet-sp.ads: Likewise. * namet.adb: Likewise. * namet.ads: Likewise. * namet.h: Likewise. * nlists.adb: Likewise. * nlists.ads: Likewise. * nlists.h: Likewise. * opt.adb: Likewise. * opt.ads: Likewise. * osint-b.adb: Likewise. * osint-b.ads: Likewise. * osint-c.adb: Likewise. * osint-c.ads: Likewise. * osint-l.adb: Likewise. * osint-l.ads: Likewise. * osint-m.adb: Likewise. * osint-m.ads: Likewise. * osint.adb: Likewise. * osint.ads: Likewise. * output.adb: Likewise. * output.ads: Likewise. * par-ch10.adb: Likewise. * par-ch11.adb: Likewise. * par-ch12.adb: Likewise. * par-ch13.adb: Likewise. * par-ch2.adb: Likewise. * par-ch3.adb: Likewise. * par-ch4.adb: Likewise. * par-ch5.adb: Likewise. * par-ch6.adb: Likewise. * par-ch7.adb: Likewise. * par-ch8.adb: Likewise. * par-ch9.adb: Likewise. * par-endh.adb: Likewise. * par-labl.adb: Likewise. * par-load.adb: Likewise. * par-prag.adb: Likewise. * par-sync.adb: Likewise. * par-tchk.adb: Likewise. * par-util.adb: Likewise. * par.adb: Likewise. * par.ads: Likewise. * par_sco.adb: Likewise. * par_sco.ads: Likewise. * pprint.adb: Likewise. * pprint.ads: Likewise. * prep.adb: Likewise. * prep.ads: Likewise. * prepcomp.adb: Likewise. * prepcomp.ads: Likewise. * put_scos.adb: Likewise. * put_scos.ads: Likewise. * raise-gcc.c: Likewise. * raise.c: Likewise. * raise.h: Likewise. * repinfo-input.adb: Likewise. * repinfo-input.ads: Likewise. * repinfo.adb: Likewise. * repinfo.ads: Likewise. * repinfo.h: Likewise. * restrict.adb: Likewise. * restrict.ads: Likewise. * rident.ads: Likewise. * rtfinal.c: Likewise. * rtinit.c: Likewise. * rtsfind.adb: Likewise. * rtsfind.ads: Likewise. * runtime.h: Likewise. * s-oscons-tmplt.c: Likewise. * sa_messages.adb: Likewise. * sa_messages.ads: Likewise. * scans.adb: Likewise. * scans.ads: Likewise. * scil_ll.adb: Likewise. * scil_ll.ads: Likewise. * scn.adb: Likewise. * scn.ads: Likewise. * scng.adb: Likewise. * scng.ads: Likewise. * scos.adb: Likewise. * scos.ads: Likewise. * scos.h: Likewise. * sdefault.ads: Likewise. * seh_init.c: Likewise. * sem.adb: Likewise. * sem.ads: Likewise. * sem_aggr.adb: Likewise. * sem_aggr.ads: Likewise. * sem_attr.adb: Likewise. * sem_attr.ads: Likewise. * sem_aux.adb: Likewise. * sem_aux.ads: Likewise. * sem_case.adb: Likewise. * sem_case.ads: Likewise. * sem_cat.adb: Likewise. * sem_cat.ads: Likewise. * sem_ch10.adb: Likewise. * sem_ch10.ads: Likewise. * sem_ch11.adb: Likewise. * sem_ch11.ads: Likewise. * sem_ch12.adb: Likewise. * sem_ch12.ads: Likewise. * sem_ch13.adb: Likewise. * sem_ch13.ads: Likewise. * sem_ch2.adb: Likewise. * sem_ch2.ads: Likewise. * sem_ch3.adb: Likewise. * sem_ch3.ads: Likewise. * sem_ch4.adb: Likewise. * sem_ch4.ads: Likewise. * sem_ch5.adb: Likewise. * sem_ch5.ads: Likewise. * sem_ch6.adb: Likewise. * sem_ch6.ads: Likewise. * sem_ch7.adb: Likewise. * sem_ch7.ads: Likewise. * sem_ch8.adb: Likewise. * sem_ch8.ads: Likewise. * sem_ch9.adb: Likewise. * sem_ch9.ads: Likewise. * sem_dim.adb: Likewise. * sem_dim.ads: Likewise. * sem_disp.adb: Likewise. * sem_disp.ads: Likewise. * sem_dist.adb: Likewise. * sem_dist.ads: Likewise. * sem_elab.adb: Likewise. * sem_elab.ads: Likewise. * sem_elim.adb: Likewise. * sem_elim.ads: Likewise. * sem_eval.adb: Likewise. * sem_eval.ads: Likewise. * sem_intr.adb: Likewise. * sem_intr.ads: Likewise. * sem_mech.adb: Likewise. * sem_mech.ads: Likewise. * sem_prag.adb: Likewise. * sem_prag.ads: Likewise. * sem_res.adb: Likewise. * sem_res.ads: Likewise. * sem_scil.adb: Likewise. * sem_scil.ads: Likewise. * sem_smem.adb: Likewise. * sem_smem.ads: Likewise. * sem_type.adb: Likewise. * sem_type.ads: Likewise. * sem_util.adb: Likewise. * sem_util.ads: Likewise. * sem_warn.adb: Likewise. * sem_warn.ads: Likewise. * set_targ.adb: Likewise. * set_targ.ads: Likewise. * sfn_scan.adb: Likewise. * sfn_scan.ads: Likewise. * sigtramp-armdroid.c: Likewise. * sigtramp-ios.c: Likewise. * sigtramp-qnx.c: Likewise. * sigtramp-vxworks.c: Likewise. * sigtramp.h: Likewise. * sinfo-cn.adb: Likewise. * sinfo-cn.ads: Likewise. * sinfo.adb: Likewise. * sinfo.ads: Likewise. * sinput-c.adb: Likewise. * sinput-c.ads: Likewise. * sinput-d.adb: Likewise. * sinput-d.ads: Likewise. * sinput-l.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. * sprint.adb: Likewise. * sprint.ads: Likewise. * stand.ads: Likewise. * stringt.adb: Likewise. * stringt.ads: Likewise. * stringt.h: Likewise. * style.adb: Likewise. * style.ads: Likewise. * styleg.adb: Likewise. * styleg.ads: Likewise. * stylesw.adb: Likewise. * stylesw.ads: Likewise. * switch-b.adb: Likewise. * switch-b.ads: Likewise. * switch-c.adb: Likewise. * switch-c.ads: Likewise. * switch-m.adb: Likewise. * switch-m.ads: Likewise. * switch.adb: Likewise. * switch.ads: Likewise. * sysdep.c: Likewise. * table.adb: Likewise. * table.ads: Likewise. * targext.c: Likewise. * targparm.adb: Likewise. * targparm.ads: Likewise. * tbuild.adb: Likewise. * tbuild.ads: Likewise. * tempdir.adb: Likewise. * tempdir.ads: Likewise. * terminals.c: Likewise. * tracebak.c: Likewise. * treepr.adb: Likewise. * treepr.ads: Likewise. * ttypes.ads: Likewise. * types.adb: Likewise. * types.ads: Likewise. * types.h: Likewise. * uintp.adb: Likewise. * uintp.ads: Likewise. * uintp.h: Likewise. * uname.adb: Likewise. * uname.ads: Likewise. * urealp.adb: Likewise. * urealp.ads: Likewise. * urealp.h: Likewise. * usage.adb: Likewise. * usage.ads: Likewise. * validsw.adb: Likewise. * validsw.ads: Likewise. * vast.adb: Likewise. * vast.ads: Likewise. * warnsw.adb: Likewise. * warnsw.ads: Likewise. * widechar.adb: Likewise. * 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 * 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. 2021-05-03 Piotr Trojanek * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb, exp_disp.adb, exp_imgv.adb, exp_util.adb, sem_attr.adb, sem_ch13.adb, sem_ch8.adb, sem_eval.adb, sem_scil.adb, sem_util.adb: Replace calls to RTE with Is_RTE. 2021-05-03 Piotr Trojanek * sem_ch4.adb (Try_Object_Operation): Reuse local constant. 2021-05-03 Ed Schonberg * sem_ch4.adb (Try_Object_Operation): When a prefixed call is overloaded and illegal, and the All_Errors flag is off, generate an error message if the re-analysis of some candidate interpretation fails to produce one. 2021-05-03 Dmitriy Anisimkov * libgnat/g-casuti.adb: Replace with "pragma No_Body". * libgnat/g-casuti.ads: Replace with a package renaming. 2021-05-03 Piotr Trojanek * sem_attr.adb (Check_Program_Unit): Fix references to Concurrent_Kind and Is_Concurrent_Type; avoid repeated calls to Entity. 2021-05-03 Piotr Trojanek * sem_attr.adb (Check_Program_Unit): Replace tests for Task_Kind and Protected_Kind with a collective test for Concurrent_Kind; likewise, replace calls to Is_Task_Type and Is_Protected_Type with a collective call to Is_Concurrent_Type; simplify into a single membership test; add missing Entry_Kind alternative. 2021-05-03 Piotr Trojanek * 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. 2021-05-03 Piotr Trojanek * 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. 2021-05-03 Piotr Trojanek * 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. 2021-05-03 Arnaud Charlet * sem_prag.adb (Set_Exported): Do not warn on exporting a type. 2021-05-03 Ed Schonberg * 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. 2021-05-03 Justin Squirek * 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. 2021-05-03 Justin Squirek * 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. 2021-05-03 Ed Schonberg * 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. 2021-05-03 Piotr Trojanek * 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. 2021-05-03 Arnaud Charlet * tbuild.adb (Make_Implicit_Loop_Statement): Disable restriction checking on dead paths. 2021-05-03 Arnaud Charlet * 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. 2021-05-03 Arnaud Charlet * libgnat/a-ztcoio.adb: Remove unused with clause. 2021-05-03 Piotr Trojanek * 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. 2021-05-03 Ed Schonberg * 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. 2021-04-29 Eric Botcazou * exp_attr.adb (Expand_N_Attribute_Reference) : Apply the checks for universal integer contexts only in the default case. * exp_ch4.adb (Get_Size_For_Range): Move to library level. (Expand_N_Type_Conversion): If the operand has Universal_Integer type and the conversion requires an overflow check, try to do an intermediate conversion to a narrower type. 2021-04-29 Arnaud Charlet * sem_ch3.adb (Check_Anonymous_Access_Component): Factor out core processing of Check_Anonymous_Access_Components. (Check_Anonymous_Access_Components): Call Check_Anonymous_Access_Component. (Process_Discriminants): Call Check_Anonymous_Access_Component. * freeze.adb (Freeze_Record_Type): Code cleanups and add more tree checking to handle changes in sem_ch3.adb. * sem_ch8.adb (Find_Type): Remove special case for access discriminant in task types, these are now supported. 2021-04-29 Eric Botcazou * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): Remove entry condition. (Expand_N_In): Call Minimized_Eliminated_Overflow_Check on the left operand before doing the special overflow expansion. (Expand_N_Op_Eq): Likewise. (Expand_N_Op_Ge): Likewise. (Expand_N_Op_Gt): Likewise. (Expand_N_Op_Le): Likewise. (Expand_N_Op_Lt): Likewise. (Expand_N_Op_Ne): Likewise. (Minimized_Eliminated_Overflow_Check): Return False for Minimized if the size of the type is greater than that of Long_Long_Integer. 2021-04-29 Arnaud Charlet * exp_ch5.adb (Expand_N_If_Statement): Only perform the simplification on return True/False for internal nodes when -fpreserve-control-flow is not set. 2021-04-29 Eric Botcazou * sem_attr.adb (Eval_Attribute) : Use Round_Even instead of Round in the call to the Machine routine. 2021-04-29 Bob Duff * sem_attr.adb (Analyze_Attribute): Change "$" to "&". Otherwise, Errout will trip over an uninitialized (invalid) variable (Error_Msg_Unit_1). 2021-04-29 Eric Botcazou * libgnat/s-valuer.adb (Scan_Decimal_Digits): Set Extra to zero when the precision limit is reached by means of trailing zeros and prevent it from being overwritten later. 2021-04-29 Yannick Moy * errout.adb (Output_Messages): Insert SGR strings where needed. * erroutc.adb (Output_Message_Txt): Insert SGR strings where needed in the text of the message itself. (Output_Msg_Text): Allow for style message not to start with (style). * erroutc.ads: Add new constants and functions to control colors in messages output to the terminal. Add variable Use_SGR_Control that should be set to True for using SGR color control strings. 2021-04-29 Yannick Moy * sem_eval.adb (Check_Non_Static_Context_For_Overflow): Apply compile-time checking for overflows in non-static contexts including inlined code. (Eval_Arithmetic_Op): Use the new procedure. (Eval_Unary_Op, Eval_Op_Expon): Add call to the new procedure. 2021-04-29 Justin Squirek * 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 * 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 * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove unused files. (ADA_INCLUDE_SRCS): Remove libgnat/system.ads 2021-04-29 Arnaud Charlet * exp_aggr.adb (Collect_Initialization_Statements): Removed. (Convert_Aggr_In_Object_Decl, Expand_Array_Aggregate): Fix creation and insertion of Initialization_Statements. Do not set Initialization_Statements when a transient scope is involved. Move processing of Array_Slice here. Ensure that an object with an Array_Slice call gets its array component initialized. Add comments. * exp_ch7.adb: Update comments. (Store_Actions_In_Scope): Deal properly with an empty list which might now be generated by Convert_Aggr_In_Object_Decl. * exp_ch3.adb: Update comments. (Expand_N_Object_Declaration): Remove processing of Array_Slice. 2021-04-29 Arnaud Charlet * sem_ch8.adb (Analyze_Object_Renaming): Update check for AI12-0401. 2021-04-29 Patrick Bernardi * libgnat/s-stoele.ads (Storage_Offset): Cleanup comment. 2021-04-29 Gary Dismukes * 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. 2021-04-29 Joel Brobecker * 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. 2021-04-29 Piotr Trojanek * layout.adb (Layout_Type): Refine type of a local variable with the required size of object from Int to Pos (it is initialized with 8 and only multiplied by 2); fix unbalanced parens in comment. 2021-04-29 Eric Botcazou * eval_fat.adb (Succ): Use Ureal_Half in a couple of places. 2021-04-29 Ed Schonberg * 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. 2021-04-29 Piotr Trojanek * sem_cat.adb (Set_Categorization_From_Pragmas): Remove special case for generic child units; remove optimization for empty list of pragmas; properly restore visibility. 2021-04-29 Piotr Trojanek * 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. 2021-04-29 Piotr Trojanek * doc/gnat_rm/implementation_defined_attributes.rst: Change all occurrences of "permissible prefix" to "allowed prefix", for consistency. * gnat_rm.texi: Regenerate. 2021-04-29 Eric Botcazou * eval_fat.adb (Succ): Add a special case for zero if the type does not support denormalized numbers. Always use the canonical formula in other cases and add commentary throughout the function. 2021-04-29 Eric Botcazou * libgnat/s-fatgen.adb: Remove with clause for Interfaces and use type clauses for Interfaces.Unsigned_{16,32,64}. (Small16): Remove. (Small32): Likewise (Small64): Likewise. (Small80): Likewise. (Tiny16): Likewise. (Tiny32): Likewise. (Tiny64): Likewise. (Tiny80): Likewise. (Siz): Always use 16. (NR): New constant. (Rep_Last): Use it in the computation. (Exp_Factor): Remove special case for 80-bit. (Sign_Mask): Likewise. (Finite_Succ): New function implementing the Succ attribute for finite numbers. (Pred): Rewrite in terms of Finite_Succ. (Succ): Likewise. 2021-04-29 Arnaud Charlet * debug_a.adb (Debug_Output_Astring): Remove obsolete comment. 2021-04-29 Arnaud Charlet * sem_attr.adb (Check_Image_Type): Protect against empty Image_Type. 2021-04-29 Arnaud Charlet * libgnat/a-nbnbin.ads (From_Universal_Image): New. (Big_Integer): Update definition. * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb (From_Universal_Image): New. (From_String): Remove alternate body, replaced by From_Universal_Image. (Big_Real): Update definition. 2021-04-29 Gary Dismukes * sem_ch8.adb (Find_Type): Check the No_Obsolescent_Features restriction for 'Class applied to an untagged incomplete type (when Ada_Version >= Ada_2005). Remove disabling of the warning message for such usage, along with the ??? comment, which no longer applies (because the -gnatg switch no longer sets Warn_On_Obsolescent_Feature). 2021-04-29 Yannick Moy * errout.adb (Error_Msg_NEL): Extract span from node. (First_And_Last_Nodes): Use spans for subtype indications and attribute definition clauses. (Write_Source_Code_Lines): Fix for tabulation characters. Change output for large spans to skip intermediate lines. * sem_case.adb (Check_Choice_Set): Report duplicate choice on the Original_Node for the case. (Generic_Check_Choices): Set the Original_Node for the rewritten case, so that the subtree used in spans has the correct locations. 2021-04-28 Piotr Trojanek * sem_ch13.adb, sem_util.adb: Fix style. 2021-04-28 Piotr Trojanek * nlists.ads (List_Length): Adapt comment to match the behaviour. 2021-04-28 Arnaud Charlet * sem_eval.adb (Eval_Selected_Component): Only consider compile time known aggregates. 2021-04-28 Eric Botcazou * libgnat/s-fatgen.adb: Add use clause for Interfaces.Unsigned_16 and Interfaces.Unsigned_32. (Small16): New constant. (Small32): Likewise. (Small64): Likewise. (Small80): Likewise. (Pred): Declare a local overlay for Small and return it negated for zero if the type does not support denormalized numbers. (Succ): Likewise, but return it directly. 2021-04-28 Piotr Trojanek * inline.adb (Formal_Is_Used_Once): Refine type of the counter variable; remove redundant assignment. 2021-04-28 Patrick Bernardi * libgnarl/s-interr.adb (Install_Restricted_Handlers): Change Prio parameter to type Interrupt_Priority. * libgnarl/s-interr.ads (Install_Restricted_Handlers): Likewise. * libgnarl/s-interr__dummy.adb (Install_Restricted_Handlers): Likewise. * libgnarl/s-interr__hwint.adb (Install_Restricted_Handlers): Likewise. * libgnarl/s-interr__sigaction.adb (Install_Restricted_Handlers): Likewise. * libgnarl/s-interr__vxworks.adb (Install_Restricted_Handlers): Likewise. 2021-04-28 Piotr Trojanek * sem_type.ads (Write_Interp_Ref): Removed; no longer needed. * sem_type.adb (Headers): Removed; now the hash table is directly in the Interp_Map alone. (Interp_Map): Now an instance of the GNAT.HTable.Simple_HTable. (Last_Overloaded): New variable to emulate Interp_Map.Last. (Add_One_Interp): Adapt to new data structure. (Get_First_Interp): Likewise. (Hash): Likewise. (Init_Interp_Tables): Likewise. (New_Interps): Likewise. (Save_Interps): Likewise; handle O_N variable like in Get_First_Interp. (Write_Interp_Ref): Removed; no longer needed. 2021-04-28 Piotr Trojanek * inline.adb (Do_Reset_Calls): Now an instance of Traverse_Proc. 2021-04-28 Piotr Trojanek * sem_ch13.adb (Analyze_Aspect_Static): Reuse Error_Msg_Ada_2020_Feature for aspect Static. (Analyze_One_Aspect): Likewise for aspect Full_Access. 2021-04-28 Piotr Trojanek * sem_ch13.adb (Analyze_Aspect_Static): Refactor to have a single check for the expression being present; adapt comments. 2021-04-28 Piotr Trojanek * sem_ch13.adb (Analyze_Aspect_Static): Use aspect name in the error message. 2021-04-28 Piotr Trojanek * sem_eval.adb (Eval_Selected_Component): Simplify with Unqualify. 2021-04-28 Eric Botcazou * 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 * errout.adb: (Error_Msg_Internal): Use span instead of location. (Error_Msg, Error_Msg_NEL): Add versions with span parameter. (Error_Msg_F, Error_Msg_FE, Error_Msg_N, Error_Msg_NE, Error_Msg_NW): Retrieve span from node. (First_Node): Use the new First_And_Last_Nodes. (First_And_Last_Nodes): Expand on previous First_Node. Apply to other nodes than expressions. (First_Sloc): Protect against inconsistent locations. (Last_Node): New function based on First_And_Last_Nodes. (Last_Sloc): New function similar to First_Sloc. (Output_Messages): Update output when -gnatdF is used. Use character ~ for making the span visible, similar to what is done in GCC and Clang. * errout.ads (Error_Msg, Error_Msg_NEL): Add versions with span parameter. (First_And_Last_Nodes, Last_Node, Last_Sloc): New subprograms. * erroutc.adb: Adapt to Sptr field being a span. * erroutc.ads (Error_Msg_Object): Change field Sptr from location to span. * errutil.adb: Adapt to Sptr field being a span. * freeze.adb: Use Errout reporting procedures for nodes to get spans. * par-ch3.adb: Likewise. * par-prag.adb: Likewise. * par-util.adb: Likewise. * sem_case.adb: Likewise. * sem_ch13.adb: Likewise. * sem_ch3.adb: Likewise. * sem_prag.adb: Likewise. * types.ads: (Source_Span): New type for spans. (To_Span): Basic constructors for spans. 2021-04-28 Arnaud Charlet * einfo.adb (Discriminant_Constraint): Refine assertion. 2021-04-28 Gary Dismukes * exp_util.adb (Add_Own_DIC): Suppress expansion of a DIC pragma when the pragma occurs for an abstract type, since that could lead to a call to an abstract function, and such DIC checks can never be performed for abstract types in any case. * sem_disp.adb (Check_Dispatching_Context): Suppress the check for illegal calls to abstract subprograms when the call occurs within a Default_Initial_Condition aspect and the call is passed the current instance as an actual. (Has_Controlling_Current_Instance_Actual): New function to test a call to see if it has any actuals given by direct references to a current instance of a type * sem_res.adb (Resolve_Actuals): Issue an error for a call within a DIC aspect to a nonprimitive subprogram with an actual given by the name of the DIC type's current instance (which will show up as a reference to the formal parameter of a DIC procedure). 2021-04-28 Ed Schonberg * 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 * 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 * 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 * 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 * sem_res.ads: Update reference in comment. * sem_type.ads: Fix casing in a name of a unit. 2021-04-28 Yannick Moy * ghost.adb (Check_Ghost_Context): Add continuation message when in predicate. 2021-04-28 Eric Botcazou * 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 * sem_ch5.adb (Analyze_Case_Statement): Extend optimization to all objects; fix typo in comment. 2021-04-28 Piotr Trojanek * exp_ch9.adb (Build_Barrier_Function): Refine type of a protected type entity. (Is_Pure_Barrier): Fix style. 2021-04-28 Bob Duff * 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 * 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 * 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 * .gitignore: New. * doc/share/conf.py: Add Python 3 compatibility. * doc/share/gnat.sty: Add missing file. 2021-04-28 Richard Wai * 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 * 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) : 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. 2021-04-28 Eric Botcazou * 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. 2021-04-28 Eric Botcazou * 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) : Record nonconstant invariant offset computations in loops when optimization is enabled. * gcc-interface/utils2.c (gnat_invariant_expr): Handle BIT_AND_EXPR. 2021-04-20 Martin Liska * gnatvsn.ads: Bump Library_Version to 12. 2021-04-13 Eric Botcazou * 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. 2021-04-11 Gerald Pfeifer * gnat_ugn.texi (Top): Avoid invalid "up" link. 2021-03-29 Eric Botcazou 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. 2021-03-10 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity): Build a TYPE_STUB_DECL for the main variant of an enumeration type declared as volatile. 2021-03-09 Mikael Pettersson * raise-gcc.c: On Cygwin include mingw32.h to prevent windows.h from including x86intrin.h or emmintrin.h. 2021-03-05 Eric Botcazou PR ada/99264 * init.c (__gnat_alternate_sta) [Linux]: Remove preprocessor test on MINSIGSTKSZ and bump size to 32KB. * libgnarl/s-osinte__linux.ads (Alternate_Stack_Size): Bump to 32KB. 2021-03-02 Mikael Pettersson PR bootstrap/98590 * cstreams.c: Ensure fileno_unlocked() is visible on Cygwin. 2021-03-02 Eric Botcazou PR ada/99095 * sem_ch8.adb (Check_Constrained_Object): Restrict again the special optimization for limited types to non-array types except in the case of an extended return statement. 2021-03-02 Eric Botcazou PR ada/99020 * sem_ch3.adb (Build_Discriminated_Subtype): Set the Cloned_Subtype only if the type is not private. 2021-02-26 YunQiang Su PR ada/98996 * Makefile.rtl: add 128Bit operation file for MIPS N64 and N32 to LIBGNAT_TARGET_PAIRS and EXTRA_GNATRTL_NONTASKING_OBJS 2021-02-12 Arnaud Charlet * repinfo.ads, repinfo.adb (*SO_Ref*): Restore. 2021-02-03 Eric Botcazou * gcc-interface/decl.c (components_to_record): If the first component with rep clause is the _Parent field with variable size, temporarily set it aside when computing the internal layout of the REP part again. * gcc-interface/utils.c (finish_record_type): Revert to taking the maximum when merging sizes for all record types with rep clause. (merge_sizes): Put SPECIAL parameter last and adjust recursive calls. 2021-02-03 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Make the two fields of the fat pointer type addressable, and do not make the template type read-only. : If the type has discriminants mark it as may_alias. * gcc-interface/utils.c (make_dummy_type): Likewise. (build_dummy_unc_pointer_types): Likewise. 2021-01-26 Marius Hillenbrand PR ada/98228 * gcc-interface/utils.c (maybe_pad_type): Test the size of the new packable type instead of its alignment for addressability's sake. 2021-01-25 Eric Botcazou * gcc-interface/trans.c (make_covariant_thunk): Set the DECL_CONTEXT of the parameters and do not set TREE_PUBLIC on the thunk. (maybe_make_gnu_thunk): Pass the alias to the covariant thunk. * gcc-interface/utils.c (finish_subprog_decl): Set the DECL_CONTEXT of the parameters here... (begin_subprog_body): ...instead of here. 2021-01-19 Eric Botcazou PR ada/98740 * gcc-interface/trans.c (add_decl_expr): Always mark TYPE_ADA_SIZE. 2021-01-14 Sebastian Huber PR ada/98595 * Makefile.rtl (LIBGNAT_TARGET_PAIRS) : Use wraplf version of Aux_Long_Long_Float. 2021-01-03 Eric Botcazou * gnatvsn.ads: Bump copyright year. 2021-01-01 Jakub Jelinek * gnat_ugn.texi: Bump @copying's copyright year. * gnat_rm.texi: Likewise. 2021-01-01 Jakub Jelinek * ChangeLog-2020: Rotate ChangeLog. New file. Copyright (C) 2021 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.