diff options
author | Richard Kenner <kenner@adacore.com> | 2021-04-01 11:35:07 -0400 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2021-06-21 06:45:15 -0400 |
commit | d315f859f89dc925cc60c6df53a615b97be110e5 (patch) | |
tree | 67b5da1d6de4e17799cfe553e99fc42c49cf024d /gcc | |
parent | 9418d3d41f581edd9acfdc4f359d37f948c1671e (diff) | |
download | gcc-d315f859f89dc925cc60c6df53a615b97be110e5.zip gcc-d315f859f89dc925cc60c6df53a615b97be110e5.tar.gz gcc-d315f859f89dc925cc60c6df53a615b97be110e5.tar.bz2 |
[Ada] Add Return_Statement field
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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/einfo.ads | 5 | ||||
-rw-r--r-- | gcc/ada/exp_ch6.adb | 1 | ||||
-rw-r--r-- | gcc/ada/gen_il-fields.ads | 1 | ||||
-rw-r--r-- | gcc/ada/gen_il-gen-gen_entities.adb | 2 |
4 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads index 93ccffb..4c5a2da 100644 --- a/gcc/ada/einfo.ads +++ b/gcc/ada/einfo.ads @@ -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 diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb index 14c5d18..38d78b0 100644 --- a/gcc/ada/exp_ch6.adb +++ b/gcc/ada/exp_ch6.adb @@ -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); diff --git a/gcc/ada/gen_il-fields.ads b/gcc/ada/gen_il-fields.ads index 768b116..603f08a 100644 --- a/gcc/ada/gen_il-fields.ads +++ b/gcc/ada/gen_il-fields.ads @@ -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, diff --git a/gcc/ada/gen_il-gen-gen_entities.adb b/gcc/ada/gen_il-gen-gen_entities.adb index dda309b..9fe9012 100644 --- a/gcc/ada/gen_il-gen-gen_entities.adb +++ b/gcc/ada/gen_il-gen-gen_entities.adb @@ -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), |