aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_prag.ads
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2014-11-20 12:55:37 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2014-11-20 12:55:37 +0100
commit5c5e108f9bc25c1a4043e402d6c9adf6d9405e31 (patch)
treed441d9be32e70f549063623cf981eeef747e73da /gcc/ada/sem_prag.ads
parentbfe25016e3146d7d6d11c1d378dc00507ab0b8c6 (diff)
downloadgcc-5c5e108f9bc25c1a4043e402d6c9adf6d9405e31.zip
gcc-5c5e108f9bc25c1a4043e402d6c9adf6d9405e31.tar.gz
gcc-5c5e108f9bc25c1a4043e402d6c9adf6d9405e31.tar.bz2
[multiple changes]
2014-11-20 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not apply inlining expansion if function build in place, i.e. has a limited return type. 2014-11-20 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Add variables Body_Id, Body_Inputs, Body_Outputs, Spec_Inputs, Spec_Outputs. Synthesize the inputs and outputs of the subprogram when pragma [Refined_]Global is missing and perform legality checks on output states with visible refinement. (Appears_In): Update the comment on usage. (Check_Output_States): New routine. (Collect_Dependency_Clause): New routine. (Collect_Global_Items): Relocated to Analyze_Refined_Global_In_Decl_Part. (Collect_Subprogram_Inputs_Outputs): Add new formal parameters Synthesize and Depends_Seen. The routine can now synthesize inputs and outputs from pragma [Refined_]Depends. (Normalize_Clause): Update the comment on usage. The routine no longer performs normalization of outputs. (Normalize_Clauses): Normalize both inputs and outputs. (Normalize_Output): Relocated to Normalize_Clauses. * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Add new formal parameters Synthesize and Depends_Seen and update the comment on usage. 2014-11-20 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Reset_Loop_Variable): New subsidiary procedure in Build_Predicate_Functions, to handle properly quantified expressions in dynamic predicates. From-SVN: r217850
Diffstat (limited to 'gcc/ada/sem_prag.ads')
-rw-r--r--gcc/ada/sem_prag.ads17
1 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ada/sem_prag.ads b/gcc/ada/sem_prag.ads
index 4d6b1c0..d89039a 100644
--- a/gcc/ada/sem_prag.ads
+++ b/gcc/ada/sem_prag.ads
@@ -172,14 +172,21 @@ package Sem_Prag is
procedure Collect_Subprogram_Inputs_Outputs
(Subp_Id : Entity_Id;
+ Synthesize : Boolean := False;
Subp_Inputs : in out Elist_Id;
Subp_Outputs : in out Elist_Id;
Global_Seen : out Boolean);
- -- Used during the analysis of pragmas Depends, Global, Refined_Depends,
- -- and Refined_Global. Also used by GNATprove. Gathers all inputs and
- -- outputs of subprogram Subp_Id in lists Subp_Inputs and Subp_Outputs.
- -- If subprogram has no inputs and/or outputs, then the returned list
- -- is No_Elist. Global_Seen is set when the related subprogram has
+ -- Subsidiary to the analysis of pragmas Depends, Global, Refined_Depends
+ -- and Refined_Global. The routine is also used by GNATprove. Collect all
+ -- inputs and outputs of subprogram Subp_Id in lists Subp_Inputs (inputs)
+ -- and Subp_Outputs (outputs). The inputs and outputs are gathered from:
+ -- 1) The formal parameters of the subprogram
+ -- 2) The items of pragma [Refined_]Global
+ -- or
+ -- 3) The items of pragma [Refined_]Depends if there is no pragma
+ -- [Refined_]Global present and flag Synthesize is set to True.
+ -- If the subprogram has no inputs and/or outputs, then the returned list
+ -- is No_Elist. Flag Global_Seen is set when the related subprogram has
-- pragma [Refined_]Global.
function Delay_Config_Pragma_Analyze (N : Node_Id) return Boolean;