diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-11-20 12:55:37 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-11-20 12:55:37 +0100 |
commit | 5c5e108f9bc25c1a4043e402d6c9adf6d9405e31 (patch) | |
tree | d441d9be32e70f549063623cf981eeef747e73da /gcc/ada/sem_prag.ads | |
parent | bfe25016e3146d7d6d11c1d378dc00507ab0b8c6 (diff) | |
download | gcc-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.ads | 17 |
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; |