summaryrefslogtreecommitdiff
path: root/gcc/ada/sem_ch13.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2012-10-05 14:29:57 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2012-10-05 14:29:57 +0000
commit9ea61fdd44ba2ed39acf4aade8064b425451b4e5 (patch)
tree91363a32a29c19d899aa9f267516d2afed823ddd /gcc/ada/sem_ch13.ads
parent5f4275e18410f44cc68037012d49294d24ecdf34 (diff)
downloadgcc-9ea61fdd44ba2ed39acf4aade8064b425451b4e5.tar.gz
2012-10-05 Thomas Quinot <quinot@adacore.com>
* sem_dim.adb, errout.adb, errout.ads (Analyze_Dimension_Call): Add guard against abnormal tree resulting from a previously diagnosed illegality. 2012-10-05 Hristian Kirtchev <kirtchev@adacore.com> * freeze.adb (Freeze_Expression): Rename local variable Cspc to Spec and update all refs to it. Do not freeze an entity outside a subprogram body when the original context is an expression function. 2012-10-05 Robert Dewar <dewar@adacore.com> * gnat1drv.adb (Adjust_Global_Switches): Default for overflow checking is suppressed, even if backend overflow/divide checks are enabled. 2012-10-05 Ed Schonberg <schonberg@adacore.com> * einfo.adb (Set_Invariant_Procedure, Set_Predicate_Function): chain properly subprograms on Subprograms_For_Type list. * sem_ch13.ads; (Build_Invariant_Procedure_Declaration): new procedure, to create declaration for invariant procedure independently of the construction of the body, so that it can be called within expression functions. * sem_ch13.adb (Build_Invariant_Procedure): code cleanup. The declaration may already have been generated at the point an explicit invariant aspect is encountered. * sem_prag.adb; (Analyze_Pragma, case Invariant): create declaration for invariant procedure. * sem_ch7.adb (Analyze_Package_Specification): clean up call to build invariant procedure. (Preserve_Full_Attributes): propagate information about invariants if they appear on a completion, 2012-10-05 Pascal Obry <obry@adacore.com> * gnat_ugn.texi: Update documentation to lift Microsoft C restriction. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192128 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sem_ch13.ads')
-rw-r--r--gcc/ada/sem_ch13.ads8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ada/sem_ch13.ads b/gcc/ada/sem_ch13.ads
index 0ac7386e878..611f3f1c617 100644
--- a/gcc/ada/sem_ch13.ads
+++ b/gcc/ada/sem_ch13.ads
@@ -46,6 +46,14 @@ 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).
+ function Build_Invariant_Procedure_Declaration
+ (Typ : Entity_Id) return Node_Id;
+ -- If a type declaration has a specified invariant aspect, build the
+ -- declaration for the procedure at once, so that calls to it can be
+ -- generated before the body of the invariant procedure is built. This
+ -- is needed in the presence of public expression functions that return
+ -- the type in question.
+
procedure Build_Invariant_Procedure (Typ : Entity_Id; N : Node_Id);
-- Typ is a private type with invariants (indicated by Has_Invariants being
-- set for Typ, indicating the presence of pragma Invariant entries on the