aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
AgeCommit message (Collapse)AuthorFilesLines
2020-06-17Daily bump.GCC Administrator1-0/+276
2020-06-16[Ada] Expand 'Pos and 'Val for enumeration types with standard representationEric Botcazou3-37/+69
2020-06-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sinfo.ads (Conversion_OK): Document use for 'Pos and 'Val. * exp_attr.adb (Get_Integer_Type): New function returning a small integer type appropriate for an enumeration type. (Expand_N_Attribute_Reference) <Attribute_Enum_Rep>: Call it. <Attribute_Pos>: For an enumeration type with a standard representation, expand to a conversion with Conversion_OK. <Attribute_Val>: Likewise. * exp_ch4.adb (Expand_N_Type_Conversion): Do not expand when the target is an enumeration type and Conversion_OK is set.
2020-06-16[Ada] Fix spurious error on derived private type with predicateEric Botcazou1-6/+16
2020-06-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_ch4.adb (Common_Type): Go to Underlying_Full_View, if any.
2020-06-16[Ada] Change how we detect internal protected subprogramsRichard Kenner1-1/+1
2020-06-16 Richard Kenner <kenner@adacore.com> gcc/ada/ * exp_unst.adb (Subp_Index): Change way we detect internal protected subprograms.
2020-06-16[Ada] Improve bug box customer languageRichard Kenner1-3/+3
2020-06-16 Richard Kenner <kenner@adacore.com> gcc/ada/ * comperr.adb (Compiler_Abort): Clarify message displayed to customers.
2020-06-16[Ada] Minor casing of " The " after a comma in docs and commentsPiotr Trojanek14-20/+18
2020-06-16 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * checks.adb, doc/gnat_ugn/the_gnat_compilation_model.rst, einfo.ads, exp_ch5.adb, exp_ch7.adb, lib-xref.ads, libgnat/g-spitbo.ads, make.adb, sem_aux.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, urealp.adb: Fix wrong casing. * gnat_ugn.texi: Regenerate.
2020-06-16[Ada] Reuse Is_Object where possiblePiotr Trojanek4-4/+4
2020-06-16 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * einfo.adb, exp_spark.adb, exp_util.adb, sem_eval.adb: Replace "Ekind ... in Object_Kind" with "Is_Object (...)".
2020-06-16[Ada] Fix typo in comment about overlapping actualsPiotr Trojanek1-1/+1
2020-06-16 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix typo in comment.
2020-06-16[Ada] Force evaluation of qualified aggregatesPiotr Trojanek1-12/+11
2020-06-16 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * exp_util.adb (Evaluate_Name): Force evaluation of aggregates; recursively evaluate expression of a qualified expression; fix location of the comment for an attribute referenced and an indexed component.
2020-06-16[Ada] Couple of formatting and stylistic fixesEric Botcazou1-6/+4
2020-06-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * freeze.adb (Freeze_Expression): Use consistent style and formatting in a couple of cases.
2020-06-16[Ada] Enable literal aspect specifications in Big_Numbers specsSteve Baird2-3/+3
2020-06-16 Steve Baird <baird@adacore.com> gcc/ada/ * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Uncomment the commented-out Integer_Literal aspect specification for type Big_Integer.
2020-06-16[Ada] Crash in tagged type constructor with task componentsJavier Miranda2-8/+172
2020-06-16 Javier Miranda <miranda@adacore.com> gcc/ada/ * exp_ch6.adb (BIP_Suffix_Kind, Check_BIP_Actuals, Is_Build_In_Place_Entity): New subprograms. (Make_Build_In_Place_Call_In_Allocator, Make_Build_In_Place_Call_In_Anonymous_Context, Make_Build_In_Place_Call_In_Assignment, Make_Build_In_Place_Call_In_Object_Declaration): Add assertions. (Needs_BIP_Task_Actuals): Add missing support for thunks. (Expand_Actuals): Ensure that the BIP call has available an activation chain and the _master variable. * exp_ch9.adb (Find_Enclosing_Context): Initialize the list of declarations of empty blocks when the _master variable must be declared and the list was not available.
2020-06-16[Ada] Declare expressionsBob Duff13-60/+253
2020-06-16 Bob Duff <duff@adacore.com> gcc/ada/ * par-ch4.adb (P_Case_Expression): Move to be local. (P_Declare_Expression): New parsing routine. (P_Unparen_Cond_Expr_Etc): New name for P_Unparen_Cond_Case_Quant_Expression which was missing one case in its name (iterated component association), and we're adding a new case (declare expression), so lets use "Etc" instead of trying to pack all those things into the name. Add call to P_Declare_Expression, and check for missing parens. (P_Expression_If_OK, P_Expression_Or_Range_Attribute_If_OK): Add Tok_Declare. * par.adb (P_Basic_Declarative_Items): Add parameter Declare_Expression so we can tailor the error message about incorrect bodies. (P_Case_Expression): Move to body. * par-ch3.adb (P_Basic_Declarative_Items): Tailor the error message about incorrect bodies. * par-ch7.adb (P_Package): Pass Declare_Expression => False to P_Basic_Declarative_Items. * sem.ads (In_Declare_Expr): Counter used to determine whether we are analyzing a declare_expression. Needed to give errors about things that are not allowed in declare_expression, such as the 'Access attribute. * sem.adb (Do_Analyze): Save/restore In_Declare_Expr. * sem_ch4.adb (Analyze_Expression_With_Actions): Give this node its own scope. That seems better in general, but it is necessary for declare_expressions. For example, an identifier declared in a declare_expression should not clash with the same identifier in an outer scope. If this is a declare_expression, indicated by Comes_From_Source, then check legality rules, and incr/decr In_Declare_Expr. * sem_aggr.adb (Resolve_Aggregate): Allow an applicable index constraint for a declare_expression, so if its expression is an array aggregate, it can have "others => ...". * sem_attr.adb (Analyze_Access_Attribute): Disallow these attributes in declare_expressions. Add comment to make it clear that Unrestricted_Access is included. * sinfo.ads, sinfo.adb, atree.ads, atree.adb: Remove the now-incorrect comment in sinfo.ads that says N_Expression_With_Actions has no proper scope. Add 17-parameter versions of Nkind_In. Remove the 16-parameter versions of Nkind_In.
2020-06-16[Ada] ACATS C452005/C452006 memberships use wrong equality operationArnaud Charlet4-6/+25
2020-06-16 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * sem_aux.ads, sem_aux.adb (Is_Record_Or_Limited_Type): New function. * exp_ch4.adb, sem_ch4.adb (Analyze_Membership_Op, Expand_Set_Membership.Make_Cond): Choose between primitive and predefined equality for membership tests.
2020-06-16[Ada] Implement AI12-0216 on restricting overlap errors in callsEd Schonberg1-30/+13
2020-06-16 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify code and implement AI12-0216 which clarifies the conditions under which overlapping actuals in a call are illegal. If proper warnings are enabled, GNAT also emits warnings in legal cases of overlopping actuals.
2020-06-16[Ada] Fix premature freezing of artificial array subtypeEric Botcazou1-9/+12
2020-06-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * freeze.adb (Freeze_Expression): Stop climbing the parent chain at a N_{Case,If}_Expression node for a type or an entity that does not come from source.
2020-06-16[Ada] Implement AI12-0249, AI12-0295 (user-defined numeric & string literals)Steve Baird11-69/+377
2020-06-16 Steve Baird <baird@adacore.com> gcc/ada/ * snames.ads-tmpl: Define names of the three new aspects. * aspects.ads: Define the three new aspects. * sem_util.ads, sem_util.adb, sem_dim.adb: Move the function String_From_Numeric_Literal from being declared in the body of package Sem_Dim to being declared in the visible part of package Sem_Util. * sem_ch13.ads, sem_ch13.adb: Declare new visible procedure Validate_Literal_Aspect. This is where most of the legality checking occurs for an aspect specification for one of the three new aspects, as well as resolution of the subprogram named in the aspect specification. Follow example of other aspects (e.g., Validate_Literal_Aspect is called in much the same way as Validate_Iterable_Aspect in Analyze_Aspects_At_Freeze_Point; a small amount of legality checking is performed in Analyze_One_Aspect in much the same way as for Default_Value or Default_Component_Value aspects). Most of the work is done in Validate_Literal_Aspect. * contracts.adb (Add_Contract_Item): Call Validate_Literal_Aspect in much the same way that Validate_Iterable_Aspect was already being called. * sem_res.adb (Resolve): Rewrite a literal as a call if it is a user-defined literal. This is where the dynamic semantics of the 3 new aspects are implemented. * sem_ch6.adb (Fully_Conformant_Expressions): Two numeric literals that have different text but the same value (e.g., 12345 and 12_345) do not conform if they are user-defined literals. Introduce a new function User_Defined_Numeric_Literal_Mismatch to avoid duplication in making this check. * sem_type.adb (Has_Compatible_Type): A numeric literal can be compatible with a non-numeric type (and a string literal can be compatible with a non-string type) if it can be interpreted as a user-defined literal.
2020-06-16[Ada] ACATS 4.1P - C432003 - Errors missed on extension aggregatesArnaud Charlet1-3/+5
2020-06-16 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * sem_aggr.adb (Resolve_Extension_Aggregate): Fix implementation of AI05-0115 by checking the correct type.
2020-06-16[Ada] ACATS 4.1P - BC55001 - Error missedArnaud Charlet1-3/+1
2020-06-16 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * sem_ch6.adb (Analyze_Subprogram_Specification): Generate error message for functions returning interfaces.
2020-06-16[Ada] Fix assertion failure on qualified type names in predicatesPiotr Trojanek1-1/+1
2020-06-16 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * sem_ch13.adb (Membership_Entry): Relax assertion to also recognize qualified identifiers.
2020-06-16[Ada] Force evaluation of operator calls in renamingsPiotr Trojanek1-5/+9
2020-06-16 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * exp_util.adb (Evaluate_Name): Force evaluation of operators.
2020-06-16[Ada] ACATS 4.1K - B452001 - No errors detectedArnaud Charlet3-51/+50
2020-06-16 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * sem_ch4.adb (Analyze_Membership_Op): Reset entity of equality nodes for membership tests with singletons. (Analyze_User_Defined_Binary_Op): Always perform the analysis since nodes coming from the expander also may refer to non standard operators as part of membership expansion. * exp_ch4.adb (Expand_Set_Membership.Make_Cond): Reset entity of equality node. * sem_type.ads: Fix typo in comment.
2020-06-16[Ada] Check if attribute Passed_By_Reference is called on incomplete typesGhjuvan Lacambre1-0/+1
2020-06-16 Ghjuvan Lacambre <lacambre@adacore.com> gcc/ada/ * sem_attr.adb (Analyze_Attribute): Add Check_Not_Incomplete_Type call.
2020-06-16[Ada] Fix two typosGary Dismukes2-2/+2
2020-06-16 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * sem_ch6.adb: Add closing paren in a comment. * sem_util.adb: Correct comment typo (aggreate => aggregate).
2020-06-16[Ada] Crash in tagged type constructor with task componentsJavier Miranda1-47/+4
2020-06-16 Javier Miranda <miranda@adacore.com> gcc/ada/ * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Code cleanup.
2020-06-16[Ada] Fix small fallout of freezing change for expression functionsEric Botcazou1-41/+49
2020-06-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * freeze.adb (In_Expanded_Body): Remove unreachable code. (Freeze_Expression): Rename a couple of local variables. In the case of an expanded body, also freeze locally the entities declared in a nested block.
2020-06-16[Ada] Fix spurious error on implicit dereference for private typeEric Botcazou1-4/+18
2020-06-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_ch4.adb (Transform_Object_Operation): Document that it may be partially destructive for the parent of the node. (Try_Object_Operation): Undo the changes made above on failure.
2020-06-16[Ada] Crash in tagged type constructor with task componentsJavier Miranda1-1/+3
2020-06-16 Javier Miranda <miranda@adacore.com> gcc/ada/ * restrict.adb (Global_No_Tasking): Adding Targparm.Restrictions_On_Target Fixes regressions with zfp.
2020-06-16[Ada] Spurious undefined symbol with nested call to expression functionEd Schonberg1-20/+16
2020-06-16 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * freeze.adb: (Freeze_Expression, In_Expanded_Body): Treat the generated body of an expression function like other bodies generated during expansion (e.g. stream subprograms) so that those bodies are not treated as freezing points. Handle properly other global references in such completions.
2020-06-16[Ada] Accept renamings of folded string aggregatesPiotr Trojanek2-11/+19
2020-06-16 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * sem_ch8.adb (Analyze_Object_Renaming): Remove trivially useless initialization of Is_Object_Reference. * sem_util.adb (Is_Object_Reference): Simplify detection of binary and unary operators; literally implement rules about aggregates and qualified expressions; recognize string literals as object references.
2020-06-16[Ada] Implement AI12-0351 Matching for actuals for formal derived typesEric Botcazou4-45/+158
2020-06-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_ch12.adb (Validate_Derived_Type_Instance): Reword error message for 12.5.1(8) subclause and add secondary message if the incompatibility comes from the predicates. * sem_ch3.adb (Check_Constraining_Discriminant): New procedure to give the error required by the 3.7(15) subclause. Mention "statically" in the error message and add secondary message if the incompatibility comes from the predicates. (Build_Derived_Concurrent_Type): Call it when a new discriminant constrains an old one. (Build_Derived_Record_Type): Likewise. * sem_eval.ads (Predicates_Compatible): Declare. * sem_eval.adb (Predicates_Compatible): New function to implement the compatibility of predicates specified by the 4.9.1 clause. (Subtypes_Statically_Compatible): Call it.
2020-06-16Daily bump.GCC Administrator1-0/+351
2020-06-15[Ada] Rewrite Sem_Eval.Predicates_Match predicateEric Botcazou2-28/+30
2020-06-15 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_eval.ads (Predicates_Match): Fix description. * sem_eval.adb (Predicates_Match): Rewrite.
2020-06-15[Ada] Makefile.rtl: minor file renamingsEd Falis1-3/+3
2020-06-15 Ed Falis <falis@adacore.com> gcc/ada/ * Makefile.rtl: Change name of hie/g-io__vxworks-ppc-cert.adb.
2020-06-15[Ada] Improve error message on premature usage of subtypesArnaud Charlet1-30/+30
2020-06-15 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * sem_ch8.adb (Premature_Usage): Add support for subtype references and replace set of if-then-else by a case statement.
2020-06-15[Ada] Do expect task discriminants in Global and Depends contractsPiotr Trojanek1-2/+16
2020-06-15 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * sem_prag.adb (Analyze_Depends_In_Decl_Part, Analyze_Global_In_Decl_Part): Bring back task discriminants for analysis of the Global/Depends contracts; add comments.
2020-06-15[Ada] Implement AI12-0343 Return Statement ChecksEric Botcazou7-225/+231
2020-06-15 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * einfo.ads (Return_Applies_To): Document special usage for E_Block. * einfo.adb (Write_Field8_Name): Write it for E_Block too. * exp_ch4.adb (Expand_N_Type_Conversion): Remove implementation of the check prescribed by AI05-0073. * exp_ch6.adb (Apply_CW_Accessibility_Check): New procedure to apply the check prescribed by AI95-344 extracted from... (Expand_N_Extended_Return_Statement): Apply the check prescribed by AI95-344 to the expression, if present. Suppress only access checks when analyzing the rewritten result. (Expand_Simple_Function_Return): ...here. Rename local variable. Call Apply_CW_Accessibility_Check to apply the check prescribed by AI95-344, but do not do it for the simple return statement generated by the expansion of an extended return statement. Apply the check prescribed by AI05-0073 to all functions returning anonymous access type designating a specific tagged type, but not if the expression was null or tag checks are suppressed for the type, and use Not In operator rather than comparing the tags explicitly. * sem.adb (Analyze): Handle all Suppress values. * sem_ch6.adb (Analyze_Function_Return): Do not explicitly apply predicate checks in the case of an extended return statement. Do not apply an implicit conversion to the anonymous access result type in the case of the simple return statement generated by the expansion of an extended return statement. (New_Overloaded_Entity): Small comment tweak. * treepr.adb (Print_Node): Fix typo in flag string.
2020-06-15[Ada] T'Image calls T'Put_ImageBob Duff8-28/+151
2020-06-15 Bob Duff <duff@adacore.com> gcc/ada/ * exp_put_image.ads, exp_put_image.adb (Image_Should_Call_Put_Image): New function to determine whether the call to Put_Image should be generated. (Build_Image_Call): New procedure to generate the call to Put_Image. * exp_imgv.adb (Expand_Image_Attribute): Use underlying types to bypass privacy (only in Ada 2020). If Image_Should_Call_Put_Image is True (which happens only in Ada 2020), then call Build_Image_Call. * rtsfind.ads, rtsfind.adb: Add the necessary declarations in Ada.Strings.Text_Output.Buffers. * sem_attr.adb (Check_Image_Type): Enable the Ada 2020 case. * libgnat/a-stoufo.ads, libgnat/a-stoufo.adb: Use the less restrictive type that allows newline characters.
2020-06-15[Ada] Minor editorial changes in commentsGary Dismukes2-4/+4
2020-06-15 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * exp_ch9.ads (Build_Master_Declaration): Add commas. * exp_ch9.adb (Build_Master_Entity): Spelling fix ("build" => "built"). (Build_Task_Activation_Call): Fix word order.
2020-06-15[Ada] Allow uninitialized values on Big_Positive/NaturalArnaud Charlet1-2/+6
2020-06-15 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * libgnat/a-nbnbin.ads (Big_Positive, Big_Natural): Fix predicate.
2020-06-15[Ada] Fix analysis of Relaxed_Initialization for bodies-as-specsPiotr Trojanek2-11/+24
2020-06-15 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix dealing with scopes on subprogram bodies that act as specs. * sem_util.adb (Has_Relaxed_Initialization): Fix trivial mistake.
2020-06-15[Ada] Crash in tagged type constructor with task componentsJavier Miranda14-100/+299
2020-06-15 Javier Miranda <miranda@adacore.com> gcc/ada/ * restrict.ads (Set_Global_No_Tasking, Global_No_Tasking): New subprograms. * restrict.adb (Set_Global_No_Tasking, Global_No_Tasking): New subprograms. * sem_ch3.adb (Access_Definition): Do not skip building masters since they may be required for BIP calls. (Analyze_Subtype_Declaration): Propagate attribute Is_Limited_Record in class-wide subtypes and subtypes with cloned subtype attribute; propagate attribute Is_Limited_Interface. * sem_ch6.adb (Check_Anonymous_Return): Do not skip building masters since they may be required for BIP calls. Use Build_Master_Declaration to declare the _master variable. (Create_Extra_Formals): Add decoration of Has_Master_Entity when the _master formal is added. * exp_ch3.adb (Init_Formals): Adding formal to decorate it with attribute Has_Master_Entity when the _master formal is added. (Build_Master): Do not skip building masters since they may be required for BIP calls. (Expand_N_Object_Declaration): Ensure activation chain and master entity for objects initialized with BIP function calls. * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Adding support to detect and save restriction No_Tasking when set in the run-time package System or in a global configuration pragmas file. * sem_util.adb (Current_Entity_In_Scope): Overload this subprogram to allow searching for an entity by its Name. * sem_util.ads (Current_Entity_In_Scope): Update comment. * exp_ch4.adb (Expand_N_Allocator): Do not skip building masters since they may be required for BIP calls. * exp_ch6.ads (Might_Have_Tasks): New subprogram. * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add support for BIP calls returning objects that may have tasks. (Make_Build_In_Place_Call_In_Allocator): Build the activation chain if the result might have tasks. (Make_Build_In_Place_Iface_Call_In_Allocator): Build the class wide master for the result type. (Might_Have_Tasks): New subprogram. (Needs_BIP_Task_Actuals): Returns False when restriction No_Tasking is globally set. * exp_ch9.ads (Build_Master_Declaration): New subprogram. * exp_ch9.adb (Build_Activation_Chain_Entity): No action performed when restriction No_Tasking is globally set. (Build_Class_Wide_Master): No action performed when restriction No_Tasking is globally set; use Build_Master_Declaration to declare the _master variable. (Build_Master_Declaration): New subprogram. (Build_Master_Entity): No action performed when restriction No_Tasking is globally set; added support to handle transient scopes and _finalizer routines. (Build_Master_Renaming): No action performed when restriction No_Tasking is globally set. (Build_Task_Activation_Call): Skip generating the call when the chain is an ignored ghost entity. (Find_Master_Scope): Generalize the code that detects transient scopes with master entity. * einfo.ads (Has_Nested_Subprogram): Minor comment reformatting.
2020-06-15[Ada] Missing errors on aspect checkingArnaud Charlet3-98/+164
2020-06-15 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * sem_attr.adb (Eval_Attribute): Protect against previous errors. * sem_ch13.adb (Analyze_Aspect_Default_Value): Remove redundant error checking, handling in Analyze_Aspect_Specifications. (Analyze_Aspect_Specifications): Refine error messages on Default_[Component_]Value. (Check_Aspect_Too_Late): New procedure. (Rep_Item_Too_Late.Is_Derived_Type_With_Constraint): Remove, dead code. * aspects.ads (Is_Representation_Aspect): Default_Value is a representation aspect.
2020-06-15[Ada] AI12-0260 Functions Is_Basic and To_Basic in Wide_Characters.HandlingArnaud Charlet6-8/+5903
2020-06-15 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * libgnat/a-wichha.ads, libgnat/a-wichha.adb, libgnat/a-wichun.ads, libgnat/a-wichun.adb (Is_Basic, To_Basic): New. * libgnat/s-utf_32.ads, libgnat/s-utf_32.adb (Is_UTF_32_Basic, To_UTF_32_Basic, Decomposition_Search): New subprograms. (Unicode_Decomposition): New table.
2020-06-15[Ada] Passing actual parameter values to out formals when Default_Value is setGary Dismukes1-0/+19
2020-06-15 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * exp_ch6.adb (Add_Call_By_Copy_Code): In the case of a view conversion passed to a scalar out-mode parameter where the formal has Default_Value set, declare the copy temp with the base type of the formal's subtype and initialize the copy temp with the actual's value.
2020-06-15[Ada] Bad access checks on if/case expression as actualJustin Squirek4-20/+323
2020-06-15 Justin Squirek <squirek@adacore.com> gcc/ada/ * exp_ch4.adb (Expand_N_Case_Expression): Set default value for Target to silence potential warnings. (Expand_N_If_Expression): Add calculation to check when the if expression is used directly in the context of an actual of an anonymous access type and add a special path to force expansion of the if expression in this case. * exp_ch6.adb (Expand_Branch): Generate an assignment to the level temporary for a given branch. (Expand_Call_Helper): Add expansion to allow for creating a temporary to store associated accessiblity levels on each branch of the conditional expression. Also perform expansion of function calls into expressions with actions, and fixup references to N with Call_Node. (Insert_Level_Assign): Move through nested conditional expressions to each branch. * sem_util.ads, sem_util.adb (Is_Anonymous_Access_Actual): Added to detect when to force expansion of if expressions.
2020-06-15[Ada] Do not expect task discriminants in Global and Depends contractsPiotr Trojanek1-6/+2
2020-06-15 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * sem_prag.adb (Analyze_Depends_In_Decl_Part, Analyze_Global_In_Decl_Part): Do not install task discriminants for analysis of the Global/Depends contracts.
2020-06-15[Ada] Do not expect Global or Depends on single protected objectsPiotr Trojanek1-3/+3
2020-06-15 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * contracts.adb (Analyze_Object_Contract): Do not expect Global/Depends on single protected units.
2020-06-15[Ada] Incorrect accessibility checks on functions callsJustin Squirek1-4/+7
2020-06-15 Justin Squirek <squirek@adacore.com> gcc/ada/ * sem_res.adb (Valid_Conversion): Add missing condition to trigger proper static accessiblity failiures when the target type is an anonymous access.
2020-06-15[Ada] Replace repeated Ekind with Ekind_InPiotr Trojanek1-2/+1
2020-06-15 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * exp_ch6.adb (Expand_Call_Helper): Replace repeated Ekind with Ekind_In.