]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[Ada] Add Return_Statement field
authorRichard Kenner <kenner@adacore.com>
Thu, 1 Apr 2021 15:35:07 +0000 (11:35 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Mon, 21 Jun 2021 10:45:15 +0000 (06:45 -0400)
gcc/ada/

* 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.

gcc/ada/einfo.ads
gcc/ada/exp_ch6.adb
gcc/ada/gen_il-fields.ads
gcc/ada/gen_il-gen-gen_entities.adb

index 93ccffb699e17cb37cc0962331b9da77151c5101..4c5a2daa2f76602d1f84bcc9e771c555ff80f7d8 100644 (file)
@@ -4206,6 +4206,11 @@ package Einfo is
 --       entities (for convenience in setting it), but is only tested
 --       for the function case.
 
+--    Return_Statement
+--       Defined in E_Variable. Set when Is_Return_Object is set, in which
+--       case it points to the N_Simple_Return_Statement made from the
+--       extended return statement.
+
 --    Returns_By_Ref
 --       Defined in subprogram type entities and functions. Set if a function
 --       (or an access-to-function type) returns a result by reference, either
index 14c5d186eca21ce8e14539af4c7ef44c08c401d7..38d78b08ef2bcaae414865c969173144c1437c2b 100644 (file)
@@ -6033,6 +6033,7 @@ package body Exp_Ch6 is
       --  Set the flag to prevent infinite recursion
 
       Set_Comes_From_Extended_Return_Statement (Return_Stmt);
+      Set_Return_Statement (Ret_Obj_Id, Return_Stmt);
 
       Rewrite (N, Result);
 
index 768b116fc011536343eb9f1d72a0d9f90aace6c1..603f08a7d9f984462b61d5fbfe914eb13b2cfd5f 100644 (file)
@@ -874,6 +874,7 @@ package Gen_IL.Fields is
       Requires_Overriding,
       Return_Applies_To,
       Return_Present,
+      Return_Statement,
       Returns_By_Ref,
       Reverse_Bit_Order,
       Reverse_Storage_Order,
index dda309bec108364e46297ed8f6c9f2ed80e805f6..9fe9012abb57ef008d20e842ea7d3fd565e5b168 100644 (file)
@@ -350,6 +350,7 @@ begin -- Gen_IL.Gen.Gen_Entities
         Sm (Prival_Link, Node_Id),
         Sm (Related_Expression, Node_Id),
         Sm (Related_Type, Node_Id),
+        Sm (Return_Statement, Node_Id),
         Sm (Size_Check_Code, Node_Id),
         Sm (SPARK_Pragma, Node_Id),
         Sm (SPARK_Pragma_Inherited, Flag),
@@ -421,6 +422,7 @@ begin -- Gen_IL.Gen.Gen_Entities
         Sm (Prival_Link, Node_Id),
         Sm (Related_Expression, Node_Id),
         Sm (Related_Type, Node_Id),
+        Sm (Return_Statement, Node_Id),
         Sm (Shared_Var_Procs_Instance, Node_Id),
         Sm (Size_Check_Code, Node_Id),
         Sm (SPARK_Pragma, Node_Id),