aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
AgeCommit message (Collapse)AuthorFilesLines
2022-09-05[Ada] Cleanup analysis of quantified expressions with empty rangesPiotr Trojanek1-32/+27
Cleanup handling of quantified expressions before using it as an inspiration for fixing the handling of iterated component associations. Behavior is unaffected. gcc/ada/ * sem_ch4.adb (Is_Empty_Range): Move error reporting to the caller. (Analyze_Qualified_Expression): Move error reporting from Is_Empty_Range; add matching call to End_Scope before rewriting and returning.
2022-09-05[Ada] New gnatbind switch -kArnaud Charlet6-1/+49
This switch can be used to disable the effect of -F when using -n explicitly or implicitly. gcc/ada/ * bindgen.adb (Gen_Elab_Calls): Check for Check_Elaboration_Flags. * bindusg.adb (Display): Add -k. * opt.ads (Check_Elaboration_Flags): New. * switch-b.adb (Scan_Binder_Switches): Add processing of -k. * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add documentation for -k and -K. * gnat_ugn.texi: Regenerate.
2022-09-05[Ada] Code cleanupsArnaud Charlet1-17/+5
gcc/ada/ * treepr.adb: Remove local To_Lower and use the procedure version instead.
2022-09-05[Ada] Fix crash for Default_Initial_Condition on derived enumeration typeEric Botcazou8-311/+319
This fixes a crash on the declaration of a private derived enumeration type with the Default_Initial_Condition aspect and in the process makes a couple of related adjustments: 1) removes the early freezing of implicit character and numeric base types and 2) fixes an oversight in the implementation of delayed representation aspects. gcc/ada/ * aspects.ads (Delaying Evaluation of Aspect): Fix typos. * exp_ch3.adb (Freeze_Type): Do not generate Invariant and DIC procedures for internal types. * exp_util.adb (Build_DIC_Procedure_Body): Adjust comment. * freeze.adb (Freeze_Entity): Call Inherit_Delayed_Rep_Aspects for subtypes and derived types only after the base or parent type has been frozen. Remove useless freezing for first subtype. (Freeze_Fixed_Point_Type): Call Inherit_Delayed_Rep_Aspects too. * layout.adb (Set_Elem_Alignment): Deal with private types. * sem_ch3.adb (Build_Derived_Enumeration_Type): Build the implicit base as an itype and do not insert its declaration in the tree. (Build_Derived_Numeric_Type): Do not freeze the implicit base. (Derived_Standard_Character): Likewise. (Constrain_Enumeration): Inherit the chain of representation items instead of replacing it. * sem_ch13.ads (Inherit_Aspects_At_Freeze_Point): Add ??? comment. (Inherit_Delayed_Rep_Aspects): Declare. * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Do not invoke Inherit_Delayed_Rep_Aspects. (Inherit_Aspects_At_Freeze_Point): Deal with private types. (Inherit_Delayed_Rep_Aspects): Move to library level.
2022-09-05[Ada] Cleanup expansion of attribute PriorityPiotr Trojanek3-41/+30
Semantically neutral cleanup after the main fix for expansion of attribute Priority. gcc/ada/ * einfo-utils.adb (Number_Entries): Refine type of a local variable. * exp_attr.adb (Expand_N_Attribute_Reference): Rename Conctyp to Prottyp; refactor repeated calls to New_Occurrence_Of; replace Number_Entries with Has_Entries. * exp_ch5.adb (Expand_N_Assignment_Statement): Likewise; remove Subprg variable (apparently copy-pasted from expansion of the attribute).
2022-09-05[Ada] Fix expansion of attribute PriorityPiotr Trojanek2-7/+12
gcc/ada/ * exp_attr.adb (Expand_N_Attribute_Reference): Fix detection of the enclosing protected type and of the enclosing protected subprogram. * exp_ch5.adb (Expand_N_Assignment_Statement): Likewise.
2022-09-05[Ada] Remove excessive guards against inserting empty lists of actionsPiotr Trojanek2-6/+2
Call to Insert_Actions with empty list does nothing, so there is no need to guard against such calls. Code cleanup; behavior is unaffected. gcc/ada/ * freeze.adb (Freeze_Itype): Remove excessive guard. * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Likewise.
2022-09-05[Ada] Improve pretty-printing of iterated component associationsPiotr Trojanek1-3/+12
Pretty-printing used mostly in the debugger now handles more Ada 2022 syntax features. In particular, now it correctly handles expressions like "[for E of A when E /= X => E]". gcc/ada/ * sprint.adb (Sprint_Node_Actual): Handle iterator_specification within iterated_component_association and iterator_filter within iterator_specification.
2022-09-05[Ada] Fix syntax in documentationArnaud Charlet2-24/+6
Leading to a poorly formatted example section. gcc/ada/ * doc/gnat_ugn/gnat_and_program_execution.rst: Fix rest syntax * gnat_ugn.texi: Regenerate.
2022-09-03Daily bump.GCC Administrator1-0/+93
2022-09-02[Ada] Adjust previous change to Expand_Subtype_From_ExprEric Botcazou1-1/+1
An aggregate may have been rewritten before being seen by the procedure. gcc/ada/ * exp_util.adb (Expand_Subtype_From_Expr): Be prepared for rewritten aggregates as expressions.
2022-09-02[Ada] Error on return of object whose full view has undefaulted discriminantsGary Dismukes1-1/+1
The compiler wrongly reports an error about the expected type not matching the same-named found type in a return statement for a function whose result type has unknown discriminants when the full type is tagged and has an undefaulted discriminant, and the return expression is an object initialized by a function call. The processing for return statements that creates an actual subtype based on the return expression type's underlying type when that type has discriminants, and converts the expression to the actual subtype, should only be done when the underlying discriminated type is mutable (i.e., has defaulted discriminants). Otherwise the unchecked conversion to the actual subtype (of the underlying full type) can lead to a resolution problem later within Expand_Simple_Function_Return in the expansion of tag assignments (because the target type of the conversion is a full view and does not match the partial view of the function's result type). gcc/ada/ * exp_ch6.adb (Expand_Simple_Function_Return) Bypass creation of an actual subtype and unchecked conversion to that subtype when the underlying type of the expression has discriminants without defaults.
2022-09-02[Ada] Fix crash on declaration of overaligned array with constraintsEric Botcazou2-16/+12
The semantic analyzer was setting the Is_Constr_Subt_For_UN_Aliased flag on the actual subtype of the object, which is incorrect because the nominal subtype is constrained. This also adjusts a recent related change. gcc/ada/ * exp_util.adb (Expand_Subtype_From_Expr): Check for the presence of the Is_Constr_Subt_For_U_Nominal flag instead of the absence of the Is_Constr_Subt_For_UN_Aliased flag on the subtype of the expression of an object declaration before reusing this subtype. * sem_ch3.adb (Analyze_Object_Declaration): Do not incorrectly set the Is_Constr_Subt_For_UN_Aliased flag on the actual subtype of an array with definite nominal subtype. Remove useless test.
2022-09-02[Ada] Extend No_Dependence restriction to code generation (continued)Eric Botcazou3-3/+7
gcc/ada/ * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst (No_Dependence): Cite implicit dependences on the runtime library. * gnat_rm.texi, gnat_ugn.texi: Regenerate.
2022-09-02[Ada] Add loop variants to Ada.Strings.Search and Ada.Strings.MapsClaire Dross2-0/+7
Add loop variants to verify that loops terminate in string handling. gcc/ada/ * libgnat/a-strmap.adb: Add variants to simple and while loops. * libgnat/a-strsea.adb: Idem.
2022-09-02[Ada] Fix proof of runtime unit System.Exp_ModClaire Dross1-0/+10
Regain the proof of System.Exp_Mod after changes in provers and Why3. gcc/ada/ * libgnat/s-expmod.adb (Lemma_Add_Mod): Add new lemma to factor out a complex sub-proof. (Exp_Modular): Add assertion to help proof.
2022-09-02[Ada] Fix proof of runtime unit System.Wid_*Claire Dross1-1/+15
Regain the proof of System.Wid_* after changes in provers and Why3. gcc/ada/ * libgnat/s-widthu.adb (Lemma_Euclidean): Lemma to prove the relation between the quotient/remainder of a division.
2022-09-02[Ada] Recover proof of Scaled_Divide in System.Arith_64Yannick Moy2-122/+211
Proof of Scaled_Divide was impacted by changes in provers and Why3. Recover it partially, leaving some unproved basic inferences to be further investigated. gcc/ada/ * libgnat/s-aridou.adb: Add or rework ghost code. * libgnat/s-aridou.ads: Add Big_Positive subtype.
2022-09-02[Ada] Update documentation about non-symbolic tracebackEric Botcazou4-1428/+1486
This documents the limitation of addr2line with Position-Independent Code, introduces the replacement tool gnatsymbolize and adjusts obsolete stuff. gcc/ada/ * doc/gnat_ugn/gnat_and_program_execution.rst (Non-Symbolic Traceback): Update section. * gnat_rm.texi, gnat_ugn.texi, gnat-style.texi: Regenerate.
2022-09-02[Ada] Fix proof of runtime unit System.Value* and System.Image*Claire Dross24-1547/+1853
Refactor specification of the Value* and Image* units and fix proofs. gcc/ada/ * libgnat/a-nbnbig.ads: Add Always_Return annotation. * libgnat/s-vaispe.ads: New ghost unit for the specification of System.Value_I. Restore proofs. * libgnat/s-vauspe.ads: New ghost unit for the specification of System.Value_U. Restore proofs. * libgnat/s-valuei.adb: The specification only subprograms are moved to System.Value_I_Spec. Restore proofs. * libgnat/s-valueu.adb: The specification only subprograms are moved to System.Value_U_Spec. Restore proofs. * libgnat/s-valuti.ads (Uns_Params): Generic unit used to bundle together the specification functions of System.Value_U_Spec. (Int_Params): Generic unit used to bundle together the specification functions of System.Value_I_Spec. * libgnat/s-imagef.adb: It is now possible to instantiate the appropriate specification units instead of creating imported ghost subprograms. * libgnat/s-imagei.adb: Update to refactoring of specifications and fix proofs. * libgnat/s-imageu.adb: Likewise. * libgnat/s-imgint.ads: Ghost parameters are grouped together in a package now. * libgnat/s-imglli.ads: Likewise. * libgnat/s-imgllu.ads: Likewise. * libgnat/s-imgllli.ads: Likewise. * libgnat/s-imglllu.ads: Likewise. * libgnat/s-imguns.ads: Likewise. * libgnat/s-vallli.ads: Likewise. * libgnat/s-valllli.ads: Likewise. * libgnat/s-imagei.ads: Likewise. * libgnat/s-imageu.ads: Likewise. * libgnat/s-vaispe.adb: Likewise. * libgnat/s-valint.ads: Likewise. * libgnat/s-valuei.ads: Likewise. * libgnat/s-valueu.ads: Likewise. * libgnat/s-vauspe.adb: Likewise.
2022-07-14Daily bump.GCC Administrator1-0/+240
2022-07-13[Ada] Small housekeeping work in gigiEric Botcazou1-1/+8
gcc/ada/ * gcc-interface/trans.cc (gnat_to_gnu) <N_Assignment_Statement>: Fix a couple of minor issues in the commentary.
2022-07-13[Ada] Extend No_Dependence restriction to code generationEric Botcazou2-21/+64
This reports violations for 4 units from gigi. gcc/ada/ * gcc-interface/trans.cc (gigi): Report a violation of No_Dependence on System.Stack_Checking if Stack_Check_Probes_On_Target is not set and -fstack-check is specified. (build_binary_op_trapv): Report violatiosn of No_Dependence on both System.Arith_64 and System.Arith_128. (add_decl_expr): If an initialized variable, report a violation of No_Dependence on System.Memory_Copy for large aggregate types. (gnat_to_gnu) <N_Op_Eq>: Report a violation of No_Dependence on System.Memory_Compare for large aggregate types. <N_Assignment_Statement>! Report a violation of No_Dependence on System.Memory_Set, System.Memory_Move or else System.Memory_Copy for large aggregate types. * gcc-interface/utils2.cc (maybe_wrap_malloc): Report a violation of No_Dependence on System.Memory. (maybe_wrap_free): Add GNAT_NODE parameter and report a violation of No_Dependence on System.Memory. (build_call_alloc_dealloc): Adjust call to maybe_wrap_free.
2022-07-13[Ada] Revert recent change in debug info for vector array typesEric Botcazou1-8/+0
It lost too much useful information. gcc/ada/ * gcc-interface/decl.cc (gnat_to_gnu_entity): Do not set the debug type for vector types.
2022-07-13[Ada] Undo questionable renaming in earlier changeEric Botcazou1-2/+2
gcc/ada/ * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>: Undo questionable renaming.
2022-07-13[Ada] Also deal with private actual types in latest changeEric Botcazou1-0/+13
gcc/ada/ * gcc-interface/decl.cc (Gigi_Cloned_Subtype): Handle private case.
2022-07-13[Ada] Adjust name of stack checking functionEric Botcazou1-1/+1
gcc/ada/ * gcc-interface/trans.cc (gigi): Add one more leading underscore to name of stack checking function.
2022-07-13[Ada] Use actual types instead of formal types consistently in debug infoEric Botcazou1-27/+93
This makes sure that the objects present in instantiations always have the actual type instead of a local variant of the formal type in the debugging information generated by the compiler (this was already the case when the actual type is a record, a protected or a task type). gcc/ada/ * gcc-interface/decl.cc (Gigi_Cloned_Subtype): New function. (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Call it to get the cloned subtype, if any. <E_Floating_Point_Subtype>: Likewise. <E_Array_Subtype>: Likewise. <E_Record_Subtype>: Likewise. <E_Access_Subtype>: Likewise. Deal with all cloned subtypes on the main path.
2022-07-13[Ada] Generate debug info entry for user-defined access subtypeEric Botcazou1-7/+6
This is consistent with the other kinds of subtypes. gcc/ada/ * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Access_Subtype>: Do not reuse the TYPE_DECL of the base type.
2022-07-13[Ada] Do not generate DW_TAG_typedef for constrained array typesEric Botcazou1-16/+9
It no longer serves any useful purpose at this point. gcc/ada/ * gcc-interface/utils.cc (gnat_pushdecl): Build DECL_ORIGINAL_TYPE only for pointer types.
2022-07-13[Ada] Fix internal error on comparison with access function parameterEric Botcazou1-5/+10
It comes from an overzealous assertion. gcc/ada/ * gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Also accept pointer-to-function types that are not variant of each other.
2022-07-13[Ada] Fix internal error on instance of Ada.Task_Attributes at -OEric Botcazou1-7/+13
This happens when there is a size mismatch, but this must be accepted. gcc/ada/ * gcc-interface/utils.cc (unchecked_convert): Also pad in most cases if the source is not a scalar type but the destination is.
2022-07-13[Ada] Fix wrong access check with access-to-unconstrained-arrayEric Botcazou1-8/+13
The current implementation may create dangling references from a superset of the alias set of the dummy pointer-to-array type when it exists. gcc/ada/ * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Save and restore the alias set of the dummy pointer-to-array type.
2022-07-13[Ada] Extend No_Dependence restriction to code generation (continued)Eric Botcazou1-0/+4
gcc/ada/ * snames.ads-tmpl (Name_Memory_Compare): New package name. (Name_Memory_Copy): Likewise. (Name_Memory_Move): Likewise. (Name_Memory_Set): Likewise.
2022-07-13[Ada] Fix for bootstrap problem with calling function System.Case_Util.To_MixedGary Dismukes1-1/+3
gcc/ada/ * sem_ch13.adb (Check_And_Resolve_Storage_Model_Type_Argument): Call the System.Case_Util.To_Mixed procedure rather than the function, to avoid bootstrap problems.
2022-07-13[Ada] Add support for defaulted Storage_Model_Type aspect and subaspectsGary Dismukes6-129/+202
The compiler currently rejects a Storage_Model_Type aspect that is not specified with an aggregate, or that has an aggregate that does not specify all defined "subaspects" (Address_Type, Null_Address, Allocate, etc.). The RFC for this feature defines the aspect to fully default to the native memory model when no aggregate is given, and also allows any subaspects to be specified and others to default in the case where the address type is the native address type (System.Address), whether that address type is explicitly specified or defaulted. This set of changes now supports that defaulting semantics. Note that the subaspect retrieval functions in Sem_Util.Storage_Model_Support (which are called by the compiler back ends) will now return Empty for any subprogram subaspects (Allocate, Deallocate, etc.) that are defaulted in the aspect (that is, in the native model case where the address type is System.Address). Also in the native case, retrieval of defaulted subaspects Address_Type and Null_Address will return the entities for System.Address and System.Null_Address, respectively. Additionally, error checks for multiple associations given for the same subaspect are now done. gcc/ada/ * aspects.ads (Aspect_Argument): Change the association for Aspect_Storage_Model_Type from Expression to Optional_Expression. * exp_util.ads (Find_Storage_Op): Update comment to indicate that Empty can be returned in the case where a storage-model operation is defaulted. * exp_util.adb (Find_Storage_Op): Allow the function to return Empty in Storage_Model_Type case rather than raising Program_Error, so that Procedure_To_Call fields in N_Allocator and N_Free_Statement nodes will be set to Empty in the defaulted native storage-model case. * sem_ch13.adb: Add with and use of System.Case_Util (and reformat context_clause). (Check_Aspect_At_Freeze_Point): Return with no action for a Storage_Model_Type aspect with no expression (fully-defaulted native memory-model case). (Resolve_Storage_Model_Type_Argument): If an Address_Type has not been explicitly specified, then set Addr_Type to denote type System.Address. (Validate_Storage_Model_Type_Aspect): Return immediately in the case where the aspect has no Expression (fully-defaulted native memory-model case). No longer issue an error when Address_Type isn't specified, and instead use type System.Address as the default address type. When the address type is System.Address (whether specified or defaulted), no longer issue errors for any other "subaspects" that aren't specified, since in that case those are allowed to default as well. Remove ??? comment about needing to check for duplicates, which is now addressed. (Check_And_Resolve_Storage_Model_Type_Argument): New procedure to check that an association for a storage-model subaspect in the aggregate has not been specified earlier in the aggregate, and to then resolve the expression of the association and save the resolved entity. Called by Validate_Storage_Model_Type_Aspect. * sem_util.ads (Storage_Model_Support): Update comments on specs of the functions Get_Storage_Model_Type_Entity, Storage_Model_Address_Type, and Storage_Model_Null_Address to indicate the behavior when the address type is System.Address (the native memory-model case). * sem_util.adb (Storage_Model_Support.Get_Storage_Model_Type_Entity): Suppress the search for the given subaspect name (Nam) when the Storage_Model_Type aspect is fully defaulted (i.e., no Expression is present) and simply return. In cases where the search is done, but no association that matches Nam is found, return System.Address for the Name_Address_Type case, return System.Null_Address for the Name_Null_Address case, and return Empty for all other cases.
2022-07-13[Ada] Fix for visibility of aspect expressions inside generic unitsPiotr Trojanek1-30/+35
When a generic unit contains references to global entities (i.e. entities declared outside of this generic unit), those references are saved: from the analyzed copy of a generic unit (which is then discarded) into a generic template (which is then instantiated, possibly many times). To save those references we maintain an association from nodes in the generic template to nodes in the analyzed copy. However, this association breaks when analysis of the generic copy calls Relocate_Node, which conceptually only moves the node, while in fact it creates a copy with a new Node_Id. In particular, this association was broken by calls to Relocate_Node that happen when transforming various aspects into corresponding pragmas or attribute definition clases. For the most common Pre and Post aspects this was fixed years ago by not using Relocate_Node and simply sharing the tree. This patch extends this fix to other aspects, in particular those that allow non-static expressions. gcc/ada/ * sem_ch13.adb (Relocate_Expression): New routine with code that previously was only applied to Pre and Post aspects. (Analyze_Aspect_Specifications): Apply the above routine to other aspects, in particular to aspects Address, Attach_Handler, Predicate and Interrupt_Priority.
2022-07-13[Ada] Handle bodies-to-inline just like generic templatesPiotr Trojanek2-12/+4
Originally bodies-to-inline created for the frontend inlining were analyzed with expansion disabled. Then, to facilitate inlining in GNATprove mode, the analysis was changed to preanalysis. However, preanalysis in this context works badly for calls in prefix notation, because preanalysis assigns entities and types to nodes but doesn't convert calls from prefix to ordinary notation. When the body-to-inline is actually inlined, the (re)analysis of calls in prefix notation fails. The proper solution is rather to handle bodies-to-inline just like generic templates. From the user point of view, this patch fixes spurious errors both in GNATprove (which uses frontend inlining by default) and in GNAT (where frontend inlining is typically explicitly requested with -gnatN and pragma Inline_Always). gcc/ada/ * inline.adb (Build_Body_To_Inline): Instead of manipulating the Full_Analysis flag, use the Inside_A_Generic flag (which is conveniently manipulated by Start_Generic/End_Generic, together with Expander_Active). * sem_attr.adb (Analyze_Attribute_Old_Result): Adapt comment and assertion to different flag that is set while building body-to-inline.
2022-07-13[Ada] Clarify hardening command-line options that require explicit choicesAlexandre Oliva2-16/+18
Prefixes -fzero-call-used-regs and -fstrub could be mistaken for full command-line options with the references to them in the GNAT RM. Make it clearer that they require explicit choices. gcc/ada/ * doc/gnat_rm/security_hardening_features.rst: Clarify the need for choices after -fzero-call-used-regs and -fstrub. * gnat_rm.texi: Regenerate.
2022-07-13[Ada] Fix incorrect handling of Ghost aspectYannick Moy1-0/+10
When a formal generic type is marked as Ghost, the instantiation of that generic will contain a generic subtype for the actual with the Ghost pragma. Recognize this case. gcc/ada/ * sem_prag.adb (Analyze_Pragma): Recognize a generated subtype with Ghost pragma for generic instantiations.
2022-07-13[Ada] Fix proof of runtime unit System.Arith_64Yannick Moy1-4/+92
After changes in provers and Why3, changes are needed to recover automatic proof of System.Arith_64. This is the first part of it. gcc/ada/ * libgnat/s-aridou.adb (Lemma_Mult_Div, Lemma_Powers): New lemmas. (Prove_Sign_Quotient): New local lemma. (Prove_Signs): Expand definition of Big_R and Big_Q in the postcondition. Add intermediate assertions. (Double_Divide): Call new lemma. (Lemma_Div_Eq): Provide body for proving lemma. (Lemma_Powers_Of_2, Lemma_Shift_Without_Drop, Prove_Dividend_Scaling, Prove_Multiplication, Prove_Z_Low): Call lemmas, add intermediate assertions.
2022-07-13[Ada] Fix crash on frontend inlining of functions with single returnsPiotr Trojanek1-0/+1
When examining expression of the first declaration of the inlined body make sure that this declaration is in fact an object declaration. gcc/ada/ * inline.adb (Has_Single_Return): Add guard for the subsequent call to Expression.
2022-07-13[Ada] Plug legality loophole for equality operator of untagged record typesEric Botcazou2-69/+162
In Ada 2012, the RM 4.5.2(9.8) clause prevents an equality operator for an untagged record type from being declared after the type is frozen. While the clause is implemented in GNAT, the implementation has a loophole which lets subprogram bodies that are not the completion of a declaration pass the check without being flagged. gcc/ada/ * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set Acts_As_Spec earlier if the body is not the completion of a declaration. (Check_Untagged_Equality): Deal with subprogram bodies that are not the completion of a declaration and make sure that they are not flagged when they cause the freezing of the type themselves. Give a warning on the freezing point of the type in more cases. * sem_res.adb (Resolve_Equality_Op): Revert latest change.
2022-07-13[Ada] Fix automatic proof on System.Arith_32Yannick Moy1-1/+2
gcc/ada/ * libgnat/s-arit32.adb (Scaled_Divide32): Add an assertion, move the call of Prove_Sign_R around.
2022-07-13[Ada] Fix if expression returning sliceMarc Poulhiès1-3/+17
The compiler incorrectly assumed the prefix for a slice returned in one branch of an if expression has its bounds known at compile time and would crash when this is not true. gcc/ada/ * exp_ch4.adb (Expand_N_If_Expression): Test for compile time known bounds when handling slices.
2022-07-13[Ada] Add cross-references between Integer_Type_For and Small_Integer_Type_ForEric Botcazou1-2/+2
gcc/ada/ * exp_util.ads (Integer_Type_For): Mention Small_Integer_Type_For. (Small_Integer_Type_For): Mention Integer_Type_For.
2022-07-13[Ada] Fix internal error on untagged record type with equality operatorEric Botcazou1-1/+8
After the binding interpretation issued under AI12-0413, a user-defined primitive equality operator of an untagged record type hides the predefined equality operator in an instantiation, but this does not apply if the instantiation appears in the same declarative region as the type and before the declaration of this user-defined operator. gcc/ada/ * sem_res.adb (Resolve_Equality_Op): Make sure that the user-defined operator of an untagged record type is declared ahead of an instance before using it to resolve the equality operator in the instance.
2022-07-13[Ada] Fix CodePeer warnings in GNAT sourcesJustin Squirek4-117/+17
This patch fixes various redundant constructs or uninitialized variables identified by CodePeer in the GNAT frontend and runtime sources. gcc/ada/ * exp_ch6.adb (Expand_N_Extended_Return_Statement): Add default initialization for Stmts. * sem_ch12.adb (Analyze_Associations): Add default initialization for Match. * libgnat/a-ztenau.adb (Scan_Enum_Lit): Remove duplicated boolean test. * libgnat/g-spipat.adb (XMatch): Combine duplicated cases.
2022-07-13[Ada] Refine type for checking number of pragma argumentsPiotr Trojanek1-2/+2
Code cleanup. gcc/ada/ * par-prag.adb (Check_Arg_Count): Change parameter type from Int to Nat, because this parameter is compared to Arg_Count variable which is of type Nat. Also, it wouldn't make sense to check for negative number of pragma arguments.
2022-07-13Daily bump.GCC Administrator1-0/+328