aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_ch13.ads
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2010-10-19 12:37:41 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2010-10-19 12:37:41 +0200
commite606088aa9a3e732484cf7b701dc1e59e3bd9f69 (patch)
tree3a8f635ec7941d35e5630c74c102a5b8ac101976 /gcc/ada/sem_ch13.ads
parentc95e0edc4588b3811bec2fc4d4aa1bf0b7a0456a (diff)
downloadgcc-e606088aa9a3e732484cf7b701dc1e59e3bd9f69.zip
gcc-e606088aa9a3e732484cf7b701dc1e59e3bd9f69.tar.gz
gcc-e606088aa9a3e732484cf7b701dc1e59e3bd9f69.tar.bz2
[multiple changes]
2010-10-19 Geert Bosch <bosch@adacore.com> * ttypef.ads: Change VAXDF_Last to be -VAXDF_First, as type is symmetric. 2010-10-19 Robert Dewar <dewar@adacore.com> * atree.h (Field29): Fix incorrect definition. * einfo.adb (Invariant_Procedure): New attribute (Has_Invariants): New flag (Has_Inheritable_Invariants): New flag (OK_To_Reference): New flag Minor code reorganization (use Next_Rep_Item function) * einfo.ads (Invariant_Procedure): New attribute (Has_Invariants): New flag (Has_Inheritable_Invariants): New flag (OK_To_Reference): New flag * exp_ch3.adb (Expand_N_Object_Declaration): Add check for invariant * exp_ch4.adb (Expand_N_Type_Conversion): Check invariant on type conversion. Minor reformatting. * exp_util.ads, exp_util.adb (Make_Invariant_Call): New procedure. * opt.ads (List_Inherited_Aspects): New name for List_Inherited_Pre_Post * par-prag.adb: Add dummy entry for pragma Invariant. * sem_ch13.adb (Build_Invariant_Procedure): New procedure (Analyze_Aspect_Specification): Add support for Invariant aspect * sem_ch13.ads (Build_Invariant_Procedure): New procedure * sem_ch3.adb (Build_Derived_Type): Propagate invariant information (Process_Full_View): Deal with invariants, building invariant procedure Minor reformatting * sem_ch6.adb (Process_PPCs): Add processing of invariants * sem_ch7.adb (Analyze_Package_Specification): Build invariant procedures. * sem_prag.adb: Implement pragma Invariant. * sem_res.adb (Resolve_Entity_Name): Allow type reference if OK_To_Reference set. * sem_warn.adb (List_Inherited_Aspects): New name for List_Inherited_Pre_Post. * snames.ads-tmpl: Add entries for pragma Invariant. * treepr.adb (Print_Entity_Information): Add handling of Field29. * usage.adb: Warning .l/.L applies to invariant as well as pre/post. From-SVN: r165694
Diffstat (limited to 'gcc/ada/sem_ch13.ads')
-rw-r--r--gcc/ada/sem_ch13.ads11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ada/sem_ch13.ads b/gcc/ada/sem_ch13.ads
index b00d270..85a9085 100644
--- a/gcc/ada/sem_ch13.ads
+++ b/gcc/ada/sem_ch13.ads
@@ -52,6 +52,17 @@ package Sem_Ch13 is
-- order is specified and there is at least one component clause. Adjusts
-- component positions according to either Ada 95 or Ada 2005 (AI-133).
+ procedure Build_Invariant_Procedure
+ (Typ : Entity_Id;
+ PDecl : out Node_Id;
+ PBody : out Node_Id);
+ -- If Typ has Invariants (indicated by Has_Invariants being set for Typ,
+ -- indicating the presence of Pragma Invariant entries on the rep chain,
+ -- note that Invariant aspects are converted to pragma Invariant), then
+ -- this procedure builds the spec and body for the corresponding Invariant
+ -- procedure, returning themn in PDecl and PBody. In some error situations
+ -- no procedure is built, in which case PDecl/PBody are empty on return.
+
procedure Check_Record_Representation_Clause (N : Node_Id);
-- This procedure completes the analysis of a record representation clause
-- N. It is called at freeze time after adjustment of component clause bit