aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
AgeCommit message (Collapse)AuthorFilesLines
2023-05-23ada: Fix reference to Ada issue in commentRonan Desplanques1-1/+1
gcc/ada/ * sem_disp.adb: Fix reference to Ada issue in comment.
2023-05-23ada: Fix address arithmetic issues in the expanded codeEric Botcazou1-32/+37
This is most notably the addition of addresses in Expand_Interface_Thunk. There is also a small change to Expand_Dispatching_Call, which was directly accessing a class-wide interface object as a tag, thus giving rise later to unchecked conversions between either the root or the equivalent record type and access types. gcc/ada/ * exp_disp.adb (Expand_Dispatching_Call): In the abstract interface class-wide case, use 'Tag of the object as the controlling tag. (Expand_Interface_Thunk): Perform address arithmetic using operators of System.Storage_Elements.
2023-05-23ada: Fix address arithmetic issues in the runtimeEric Botcazou4-24/+26
This is most notably the addition of addresses in Interfaces.C.Pointers and System.Bitfield_Utils. There is also a change to System.Stream_Attributes, which was representing a thin pointer as a record, which is not problematic per se, but is in the end, because the expanded code performs an unchecked conversion from it to the access type instead of accessing the component. gcc/ada/ * libgnat/i-cpoint.adb: Add clauses for System.Storage_Elements. (Addr): Delete. (Offset): New subtype of Storage_Offset. (To_Offset): New instance of Unchecked_Conversion. (To_Pointer): Adjust. (To_Addr): Likewise. (To_Ptrdiff): Likewise. ("+"): Call To_Offset on the offset. ("-"): Likewise. * libgnat/s-bituti.adb: Add clauses for System.Storage_Elements. (Val_Bytes): Change type to Storage_Count. (Get_Val_2): Add qualification to second operand of mod operator. (Set_Val_2): Likewise. (Copy_Bitfield): Likewise. Change type of Src_Adjust & Dest_Adjust. * libgnat/s-stratt.ads (Thin_Pointer): Change to subtype of Address. * libgnat/s-statxd.adb (I_AD): Adjust. (I_AS): Likewise. (W_AS): Likewise.
2023-05-23ada: A discriminant of a variable is not a variableSteve Baird1-5/+2
gcc/ada/ * sem_util.adb (Is_Variable): Correctly return False for a selected component name of the form Some_Object.Some_Discriminant, even if Some_Object is a variable. We don't want to allow such a name as an actual parameter in a call if the corresponding formal parameter's mode is not "in".
2023-05-23ada: Add default value at initialization for CodePeerYannick Moy1-1/+2
Avoid spurious alarm by CodePeer analysis by adding default value for a variable initialization. gcc/ada/ * sem_util.adb (Check_Node): Add default init on local Id.
2023-05-23ada: Facilitate proof of Interfaces.C.To_AdaYannick Moy1-0/+1
Nightly runs of GNATprove fail on proof of the assertion following the loop. Add a loop invariant to facilitate that proof. gcc/ada/ * libgnat/i-c.adb (To_Ada): Add loop invariant.
2023-05-23ada: Remove the body of System.Storage_ElementsEric Botcazou8-137/+75
All the subprograms declared in the unit have convention Intrinsic and their current implementation makes some implicit assumptions that are not valid universally, so it is replaced by a direct expansion. This is mostly straightforward because Resolve_Intrinsic_Operator already contains the required circuitry, but a few adjustements are necessary. gcc/ada/ * exp_ch4.adb (Expand_N_Op_Mod): Deal with the special mod operator of System.Storage_Elements. * exp_intr.adb (Expand_To_Integer): New procedure. (Expand_Intrinsic_Call): Call Expand_To_Integer appropriately. (Expand_To_Address): Deal with an argument with modular type. * sem_ch3.adb (Derive_Subprogram): Also set convention Intrinsic on a derived intrinsic subprogram. * sem_res.adb (Resolve_Arithmetic_Op): Deal with intrinsic operators not coming from source exactly as those coming from source and also generate a reference in both cases. (Resolve_Op_Expon): Likewise. (Resolve_Intrinsic_Operator): Call Implementation_Base_Type to get a nonprivate base type. * snames.ads-tmpl (Name_To_Integer): New intrinsic name. * libgnat/s-stoele.ads: Replace pragma Convention with pragma Import throughout and remove pragma Inline_Always and Pure_Function. * libgnat/s-stoele.adb: Replace entire contents with pragma No_Body. * libgnat/s-atacco.adb: Adjust comment about pragma No_Body.
2023-05-23ada: Spurious errors on class-wide preconditions of private typesJavier Miranda2-14/+14
The compiler reports spurious errors processing the class-wide preconditions of a dispatching primitive of a private type T, when the class-wide precondition invokes another dispatching primitive of T that has the same name as a record component of T. gcc/ada/ * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove call to preanalyze class-wide conditions since here it is too early; they must be preanalyzed when full views of private types have been analyzed. * sem_ch7.adb (Analyze_Package_Specification): Preanalyze class-wide conditions of dispatching primitives defined in nested packages.
2023-05-23ada: Turn assertions into defensive code in error locationsPiotr Trojanek1-28/+61
We pretty-print numeric literals that do not come from source by relying on their Sloc. This generally works well, but sporadically the Sloc is set wrongly. We might want to trace and fix such occurrences, but for now it is simpler to replace an otherwise reasonable assertions with defensive code. gcc/ada/ * errout.adb (Last_Sloc): Refactor a heavily repeated "S := S + 1" statement into a subprogram; replace assertions with defensive code; fix few more off-by-one errors.
2023-05-23ada: Add mention of what LSP stands forRonan Desplanques1-1/+2
There are multiple possible interpretations of "LSP". For example, "Language Server Protocol". This patch clarifies that the occurrences of "LSP" in GNAT's source code refer to the Liskov Substitution Principle. gcc/ada/ * einfo.ads: Mention full name of LSP.
2023-05-23ada: Fix endings of pretty-printed numeric literalsPiotr Trojanek1-17/+113
When looking for the end of an numeric literal we consumed '+' and '-' characters, because they might appear in the exponent part. This was too aggressive when they separated the number from the subsequent operand, like in "123+456". Now we skip past numeric literals by strictly following their grammar and only consume '+' and '-' when they belong to the exponent. gcc/ada/ * errout.adb (Last_Sloc): Rewrite skipping past numeric literals.
2023-05-23ada: Fix internal error on quantified expression with predicated typeEric Botcazou3-14/+40
The problem is that the special function created by the compiler to check the predicate does not inherit the public status of the type, because it is generated as part of the freezing of the quantified expression, which occurs from within a couple of intermediate internal scopes. gcc/ada/ * sem_ch13.adb (Build_Predicate_Function_Declaration): Adjust the commentary to the current implementation. * sem_util.ads (Current_Scope_No_Loops): Move around. (Current_Scope_No_Loops_No_Blocks): New declaration. (Add_Block_Identifier): Fix formatting. * sem_util.adb (Add_Block_Identifier): Likewise. (Current_Scope_No_Loops_No_Blocks): New function. (Set_Public_Status): Call Current_Scope_No_Loops_No_Blocks instead of Current_Scope to get the current scope.
2023-05-23ada: Fix bogus error on predicated limited record declared in protected typeEric Botcazou2-22/+10
This happens when the limited record is initialized with a function call because of a couple of issues: incorrect tree sharing when building the predicate check and too late freezing for a compiler-generated subtype. It turns out that building the predicate check manually is redundant here, since predicate checks are automatically generated during the expansion of assignment statements, and the late freezing can be easily fixed. gcc/ada/ * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do not manually generate a predicate check. Call Unqualify before doing pattern matching on the expression. * sem_ch3.adb (Analyze_Object_Declaration): Also freeze the actual subtype when it is built in the definite case.
2023-05-23ada: Sync different variants of interrupt handler registrationPiotr Trojanek4-70/+56
This patch propagates the apparently cleanest solutions between various variants of the runtime units for interrupt handler registration. In particular, the unnecessary default expressions for list cells with interrupt handler addresses are removed, the list is changed from doubly-linked to singly-linked, and assertion preventing registration of null addresses now appears in all runtimes. Effectively, it is just a code cleanup and minor optimization; behavior of the runtime unit is unaffected. gcc/ada/ * libgnarl/s-interr.adb (Registered_Handler): Remove default expression. (Registered_Handlers): Switch to singly-linked list. (Bind_Interrupt_To_Entry): Sync whitespace with other unit variants. (Is_Registered): Use singly-linked list. (Register_Interrupt_Handler): Use singly-linked list and initialized allocator; sync assertion with other unit variants. * libgnarl/s-interr__sigaction.adb: Likewise. * libgnarl/s-interr__vxworks.adb: Likewise. * libgnarl/s-interr__hwint.adb: Likewise. (Is_Registered): Remove repeated declaration.
2023-05-23ada: Revert to old pretty-printing of internal entities for CodePeerPiotr Trojanek1-3/+19
Add some defensive code to get pretty-printed CodePeer outputs for ACATS back to shape. At least some of this code appears to be redundant and perhaps unnecessary, but we can this up later. Expression pretty-printer should not be called with N_Defining_Identifier nodes at all, since they are not expressions. However, for those that come not from source, CodePeer expects that the Ident_Image routine will convert the internal names like "xL" to their corresponding human-readable representation like "x'Accesibility_Level". gcc/ada/ * pprint.adb (Expression_Image): Restore some of the old pretty-printing for CodePeer.
2023-05-23ada: Ignore accessibility actuals in expression pretty-printerPiotr Trojanek1-0/+18
Extra actual parameters for accessibility checks are confusing for the expression pretty-printer that is used by CodePeer. It seems that nodes created for the accessibility checks should use the Sloc of the source expression of accessibility checks, not the target. However, this is problematic to achieve with the current implementation of accessibility checks, so with this patch we will simply ignore the accessibility actuals when computing Slocs for expression pretty-printing. gcc/ada/ * errout.adb (First_And_Last_Nodes): Ignore accessibility parameters.
2023-05-23ada: Remove special-case for parentheses in expansion for GNATprovePiotr Trojanek1-8/+0
When expanding of inequality operators for GNAT we were adding extra parens, supposedly to "fix Sprint output" (source print); for GNATprove we didn't, as these extra parens were leading to wrong columns for check messages. Adding these extra parens couldn't be a right, because Sprint should produce reasonable output regardless of the parens, especially since we don't care about parens when creating AST in expansion. Avoiding them for GNATprove couldn't be right either, because source printing should work regardless of the GNAT/GNATprove mode. The proper fix for GNAT is rather to not add parens at all and tune source printing, if necessary. The proper fix for GNATprove is not have them either, as it confuses the heuristic in First_Sloc, which is then used by Compute_Sloc. gcc/ada/ * exp_ch4.adb (Expand_N_Op_Ne): Simply don't add extra parens.
2023-05-23ada: Transfer fix for pretty-printed parentheses from GNATprove to GNATPiotr Trojanek1-1/+69
Expressions with parentheses are notoriously problematic to pretty-print. In GNATprove we had a post-processing fix for them, but it is better to have this fix in the GNAT frontend repository and apply it for CodePeer as well. gcc/ada/ * pprint.adb (Expression_Image): Move Count_Parentheses and Fix_Parentheses routines from GNATprove and apply them before returning the slice of a source code buffer.
2023-05-23ada: Fix expression pretty-printer for SPARK counterexamplesPiotr Trojanek3-335/+146
The expression pretty-printer that is used for SPARK counterexamples was essentially duplicating the logic of First_Node/Last_Node and First_Sloc/Last_Sloc routines. Now it simply reuses those routines. gcc/ada/ * errout.adb (Paren_Required): New subsidiary routine for better handling of parentheses in First_Node/Last_Node. (First_Sloc, Last_Sloc): Use Get_Source_File_Index to correctly handle generic instances and inlined subprograms; tune handling of parentheses; improve handling of literals. * pprint.adb (Expression_Image): Simplify using First_Sloc/Last_Sloc. * sem_ch6.adb (Analyze_Expression_Function): Remove parenthesis when relocating expression from expression function to simple return statement.
2023-05-23ada: Suppress warning about Subprogram_Variant failing at run timePiotr Trojanek1-0/+7
Warning about check failing at run time is likely spurious for mutually recursive subprograms with multiple variant clauses. These will be non-trivial to detect, so we simply suppress the warning altogether for all subprogram variants. gcc/ada/ * exp_prag.adb (Expand_Pragma_Check): Suppress warning for checks of subprogram variants.
2023-05-23ada: Small code cleanupEric Botcazou1-13/+8
This just merges two conditional blocks depending on the same condition. gcc/ada/ * frontend.adb (Frontend): Merge two conditional blocks and adjust.
2023-05-23ada: Minor fix typo in commentPiotr Trojanek1-1/+1
Spotted while reviewing a patch with a similar typo. gcc/ada/ * libgnat/s-mmap.adb (Mapped_Region_Record): Fix typo in comment.
2023-05-23ada: Remove duplicate commentRonan Desplanques1-4/+0
gcc/ada/ * sem_ch7.adb: Remove duplicate comment.
2023-05-23ada: Crash on dispatching primitive referencing limited-with typeJavier Miranda1-0/+158
The compiler crashes processing a compilation unit has limited-with context clauses, and the profile of some dispatching primitive references a type visible through a limited-with clause, and the dispatching primitive has class-wide preconditions. gcc/ada/ * sem_ch10.adb (Analyze_Required_Limited_With_Units): New subprogram. (Depends_On_Limited_Views): New subprogram. (Has_Limited_With_Clauses): New subprogram. (Analyze_Compilation_Unit): Call the new subprogram that performs the full analysis of required limited-with units.
2023-05-23Daily bump.GCC Administrator1-0/+291
2023-05-22ada: Reuse idiomatic procedure in CStandRonan Desplanques1-2/+1
This change replaces a call to Set_Name_Entity_Id with a call to the higher-level Set_Current_Entity. gcc/ada/ * cstand.adb: Use more idiomatic procedure.
2023-05-22ada: Avoid repeated calls when looking for first/last slocs of a nodePiotr Trojanek1-16/+18
gcc/ada/ * errout.adb (First_Loc): Avoid repeated calls. (Last_Loc): Likewise.
2023-05-22ada: Small cleanup in support for protected subprogramsEric Botcazou2-59/+49
This moves the propagation of the Uses_Sec_Stack flag, from the original to the rewritten subprogram, to the point where the latter is expanded, along with the propagation of the Has_Nested_Subprogram flag, as well as addresses a ??? comment in the same block of code. No functional changes. gcc/ada/ * inline.adb (Cleanup_Scopes): Do not propagate the Uses_Sec_Stack flag from original to rewritten protected subprograms here... * exp_ch9.adb (Expand_N_Protected_Body) <N_Subprogram_Body>: ...but here instead. Add local variables and remove a useless test.
2023-05-22ada: Use idiomatic construct in Expand_N_Package_BodyEric Botcazou1-10/+1
gcc/ada/ * exp_ch7.adb (Expand_N_Package_Body): Call Defining_Entity to get the entity of the body.
2023-05-22ada: Fix source location for crashes in expanded Loop_Entry attributesPiotr Trojanek1-6/+4
Historically, Loop_Entry attributes were expanded while expanding their corresponding loops, so it was easier to use location of these loops for expanded code. Now, these attributes are expanded where they appear, so we can easily use the location of the attribute reference for expanded code. This matters when there is a crash in the expanded code, e.g. because of a stack overflow in the declaration of an constant object that captures the Loop_Entry prefix. Now backtrace will point to the source location of the attribute, which is more helpful than the location of the loop. gcc/ada/ * exp_attr.adb (Expand_Loop_Entry_Attribute): Use location of the attribute reference, not of the loop statement.
2023-05-22ada: Add missing word in commentRonan Desplanques1-1/+1
gcc/ada/ * par-ch3.adb: Add missing word in comment.
2023-05-22ada: Incorrect constant folding in postcondition involving 'OldJustin Squirek1-1/+12
The following patch fixes an issue in the compiler whereby certain flavors of access comparisons may be incorrectly constant-folded out of contract expressions - notably in postcondition expressions featuring a reference to 'Old. gcc/ada/ * checks.adb (Install_Null_Excluding_Check): Avoid non-null optimizations when assertions are enabled.
2023-05-22ada: Fix crash caused by incorrect expansion of iterated componentMarc Poulhiès2-2/+13
The way iterated component are expanded could lead to inconsistent tree. This change fixes 2 issues: - in an early step during Pre_Analyze, the loop variable still has Any_Type and the compiler must not emit an error. A later full Analyze is supposed to correctly set the Etype, and only then should the compiler emit an error if Any_Type is still used. - when expanding into a loop with assignments statement, the expression is analyzed in an early context (where the loop variable still has Any_Type Etype) and then copied. The compiler would crash because this Any_Type is never changed because the expression node has its Analyzed flag set. Resetting the flag ensures the later Analyze call also analyzes these nodes and set Etype correctly. gcc/ada/ * exp_aggr.adb (Process_Transient_Component): Reset Analyzed flag for the copy of the initialization expression. * sem_attr.adb (Validate_Non_Static_Attribute_Function_Call): Skip error emission during Pre_Analyze.
2023-05-22ada: Fix missing finalization in separate package bodyEric Botcazou1-22/+37
This directly comes from a loophole in the implementation. gcc/ada/ * exp_ch7.adb (Process_Package_Body): New procedure taken from... (Build_Finalizer.Process_Declarations): ...here. Call the above procedure to deal with both package bodies and package body stubs.
2023-05-22ada: Remove outdated part of commentRonan Desplanques1-2/+1
The concept of extended nodes was retired with the introduction of variable-sized node types, but a reference to that concept was left over in a comment. This change removes that reference. gcc/ada/ * atree.ads: Remove outdated part of comment.
2023-05-22ada: Fix missing finalization in library-unit instance specEric Botcazou3-13/+34
This fixes the missing finalization of objects declared in the spec of package instances that are library units (and only them, i.e. not all library-level package instances) when the instances have a package body. The finalization is done when there is no package body, and supporting this case precisely broke the other case because of a thinko or a typo. This also requires a small adjustment to the routine writing ALI files. gcc/ada/ * exp_ch7.adb (Build_Finalizer): Reverse the test comparing the instantiation and declaration nodes of a package instance, and therefore bail out only when they are equal. Adjust comments. (Expand_N_Package_Declaration): Do not clear the Finalizer field. * lib-writ.adb: Add with and use clauses for Sem_Util. (Write_Unit_Information): Look at unit nodes to find finalizers. * sem_ch12.adb (Analyze_Package_Instantiation): Beef up the comment about the rewriting of the instantiation node into a declaration.
2023-05-22ada: Rename Is_Past_Self_Hiding_Point flag to be Is_Not_Self_HiddenBob Duff13-27/+27
...which seems clearer. Still work in progress. gcc/ada/ * cstand.adb (Is_Past_Self_Hiding_Point): Rename to be Is_Not_Self_Hidden. * einfo.ads: Likewise. * exp_aggr.adb: Likewise. * gen_il-fields.ads: Likewise. * gen_il-gen-gen_entities.adb: Likewise. * sem.adb: Likewise. * sem_aggr.adb: Likewise. * sem_ch11.adb: Likewise. * sem_ch12.adb: Likewise. * sem_ch5.adb: Likewise. * sem_ch6.adb: Likewise. * sem_ch7.adb: Likewise. * sem_prag.adb: Likewise.
2023-05-22ada: Fix spurious freezing error on nonabstract null extensionEric Botcazou1-3/+5
This prevents the wrapper function created for each nonoverridden inherited function with a controlling result of nonabstract null extensions of tagged types from causing premature freezing of types referenced in its profile. gcc/ada/ * exp_ch3.adb (Make_Controlling_Function_Wrappers): Create the body as the expanded body of an expression function.
2023-05-22ada: Further fixes to GNATprove and CodePeer expression pretty-printerPiotr Trojanek1-128/+198
The expression pretty-printer still crashes on several tests, but already gives much better outputs for many previously unsupported constructs. gcc/ada/ * pprint.adb (Expression_Image): Handle several previously unsupported constructs.
2023-05-22ada: Cleanup redundant condition in resolution of entity namesPiotr Trojanek1-6/+4
Code cleanup related to new contract for SPARK; semantics is unaffected. gcc/ada/ * sem_res.adb (Resolve_Entity_Name): Combine two IF statements that execute code only for references that come from source.
2023-05-22ada: Add Is_Past_Self_Hiding_Point flagBob Duff16-25/+89
This patch adds a flag Is_Past_Self_Hiding_Point. When False, this will replace E_Void as the indicator for a premature use of a declaration within itself -- for example, "X : T := X;". One might think this flag should be called something like Is_Hidden_From_All_Visibility, reversing the sense of Is_Past_Self_Hiding_Point. We don't do that because we want Is_Past_Self_Hiding_Point to be initially False by default (and we have no mechanism for defaulting to True), and because it doesn't exactly match the RM definition of "hidden from all visibility" (for example, for record components). This is work in progress; more changes are needed before we can remove all Mutate_Ekind(..., E_Void). gcc/ada/ * einfo.ads (Is_Past_Self_Hiding_Point): Document. * gen_il-fields.ads (Is_Past_Self_Hiding_Point): Add to list of fields. * gen_il-gen-gen_entities.adb (Is_Past_Self_Hiding_Point): Declare in all entities. * exp_aggr.adb: Set Is_Past_Self_Hiding_Point as appropriate. * sem.adb: Likewise. * sem_aggr.adb: Likewise. * sem_ch11.adb: Likewise. * sem_ch12.adb: Likewise. * sem_ch5.adb: Likewise. * sem_ch7.adb: Likewise. * sem_prag.adb: Likewise. * sem_ch6.adb: Likewise. (Set_Formal_Mode): Minor cleanup: Move from spec. * sem_ch6.ads: (Set_Formal_Mode): Minor cleanup: Move to body. * cstand.adb: Call Set_Is_Past_Self_Hiding_Point on all entities as soon as they are created. * comperr.adb (Compiler_Abort): Minor cleanup -- use 'in' instead of 'or else'. * debug.adb: Minor comment cleanups.
2023-05-22ada: Accept Assert pragmas in expression functionsSteve Baird1-1/+18
gcc/ada/ * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok): Accept an executable pragma occuring in a declare expression as per AI22-0045. This means Assert and Inspection_Point pragmas as well as any implementation-defined pragmas that the implementation chooses to categorize as executable. Currently Assume and Debug are the only such pragmas.
2023-05-22ada: Add warning on frontend inlining of Subprogram_VariantPiotr Trojanek1-3/+9
We already warned when contracts like pre/postcondition appear together with pragma Inline_Always and they are ignored by the frontend inlining. For consistency we now also warn for Subprogram_Variant, which is similarly ignored even though this contract is only meaningful for recursive subprograms and those can't be inlined anyway (but error about this might only be emitted when full compilation is done). gcc/ada/ * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): Mention Subprogram_Variant in the comment. (Analyze_Subprogram_Variant_In_Decl_Part): Warn when contract is ignored because of pragma Inline_Always and frontend inlining.
2023-05-22ada: Fix spurious warning on Inline_Always and contractsPiotr Trojanek1-1/+2
Warnings about pre/postconditions being ignored with Inline_Always were only true for the obsolete frontend inlining. With the current backend pre/postconditions work fine with Inline_Always. gcc/ada/ * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): Only emit warning when frontend inlining is enabled.
2023-05-22ada: Improve -gnatyx style checkArnaud Charlet6-23/+65
Check redundant parentheses in many more places, for now only under -gnatdQ, while pending violations are fixed. gcc/ada/ * par-ch3.adb, sem_ch4.adb (P_Discrete_Range, Analyze_Logical_Op, Analyze_Short_Circuit): Add calls to Check_Xtra_Parentheses. * par-ch5.adb (P_Condition): Move logic to Check_Xtra_Parentheses. * style.ads, styleg.adb, styleg.ads (Check_Xtra_Parens): Move logic related to expressions requiring parentheses here.
2023-05-22ada: Remove extra parenthesesArnaud Charlet63-187/+183
In preparation of enhancing -gnatyx to check for these automatically. gcc/ada/ * ali-util.adb, par-endh.adb, par-prag.adb, par-ch2.adb, checks.adb, fmap.adb, libgnat/a-nbnbig.ads, libgnat/g-dynhta.adb, libgnat/s-carun8.adb, libgnat/s-strcom.adb, libgnat/a-dhfina.adb, libgnat/a-direct.adb, libgnat/a-rbtgbo.adb, libgnat/a-strsea.adb, libgnat/a-ststio.adb, libgnat/a-suenco.adb, libgnat/a-costso.adb, libgnat/a-strmap.adb, libgnat/g-alleve.adb, libgnat/g-debpoo.adb, libgnat/g-sercom__linux.adb, libgnat/s-genbig.adb, libgnat/s-mmap.adb, libgnat/s-regpat.adb, par-ch5.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb, sem_ch8.adb, sem_eval.adb, sem_prag.adb, sem_type.adb, exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb, exp_put_image.adb, freeze.adb, live.adb, sem_aggr.adb, sem_cat.adb, sem_ch10.adb, sem_ch3.adb, sem_ch6.adb, sem_ch9.adb, sem_disp.adb, sem_elab.adb, sem_res.adb, sem_util.adb, sinput.adb, uintp.adb, bcheck.adb, binde.adb, binderr.adb, einfo-utils.adb, clean.adb, sem_ch4.adb, gnatls.adb, gprep.adb, sem_ch11.adb: Remove extra parentheses.
2023-05-22ada: Remove a remaining reference to ?Arnaud Charlet1-1/+1
We should no longer use ? anywhere when emitting warnings. gcc/ada/ * sem_aggr.adb (Get_Value): Use ?? instead of ?.
2023-05-22ada: Remove redundant protection against empty listsPiotr Trojanek4-22/+14
Calls to List_Length on No_List intentionally return 0 (and likewise call to First on No_List intentionally return Empty), so explicit guards against No_List are unnecessary. Code cleanup; semantics is unaffected. gcc/ada/ * exp_aggr.adb (Aggregate_Size): Remove redundant calls to Present. * exp_ch5.adb (Expand_N_If_Statement): Likewise. * sem_prag.adb (Analyze_Pragma): Likewise. * sem_warn.adb (Find_Var): Likewise.
2023-05-22ada: Support calls through dereferences in Find_ActualClaire Dross1-8/+38
Return the corresponding formal in the designated subprogram profile in that case. gcc/ada/ * sem_util.adb (Find_Actual): On calls through dereferences, return the corresponding formal in the designated subprogram profile.
2023-05-22ada: Remove unreferenced utility routine Is_Actual_Tagged_ParameterPiotr Trojanek2-16/+0
Routine Is_Actual_Tagged_Parameter was added to detect unsupported SPARK 2005 constructs, but this feature was deconstructed in favor of SPARK 2014 and its SPARK_Mode aspects. gcc/ada/ * sem_util.ads (Is_Actual_Tagged_Parameter): Remove spec. * sem_util.adb (Is_Actual_Tagged_Parameter): Remove body.