summaryrefslogtreecommitdiff
path: root/gcc/ada/sinfo.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-10 14:39:18 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-10 14:39:18 +0000
commit1ce752d5cbd9d26c1c57811908a878ce2eba6afb (patch)
tree10be45611439a9dc1345244140d4d64df444b229 /gcc/ada/sinfo.ads
parent8164f7baee85074c4b10ed7d506b8126b7b421da (diff)
downloadgcc-1ce752d5cbd9d26c1c57811908a878ce2eba6afb.tar.gz
2009-04-10 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document that postconditions are tested on implicit returns. * sem_aux.adb: Minor reformatting 2009-04-10 Gary Dismukes <dismukes@adacore.com> * itypes.adb (Create_Null_Excluding_Itype): Apply Base_Type when setting Etype. * par-ch3.adb (P_Access_Type_Definition): Set new attribute Null_Exclusion_In_Return_Present when an access-to-function type has a result type with an explicit not null. * sem_ch3.adb (Access_Subprogram_Definition): If a null exclusion is given on the result type, then create a null-excluding itype for the function. * sem_ch6.adb (Analyze_Return_Type): Create a null-excluding itype in the case where a null exclusion is imposed on a named access type. (Analyze_Subprogram_Specification): Push and pop the scope of the function around the call to Analyze_Return_Type in the case of no formals, for consistency with handling when formals are present (Process_Formals does this). Ensures that any itype created for the return type will be associated with the proper scope. * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): If a null exclusion is given on a generic function's result type, then create a null-excluding itype for the generic function. (Instantiate_Object): Set Null_Exclusion_Present of a constant created for an actual for a formal in object according to the setting on the formal. Ensures null exclusion checks are done when the association is elaborated. * sinfo.ads: Add new flag Null_Exclusion_In_Return_Present on N_Access_Function_Definition. * sinfo.adb: Add Get_ and Set_ operations for Null_Exclusion_In_Return_Present. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145912 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sinfo.ads')
-rw-r--r--gcc/ada/sinfo.ads9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ada/sinfo.ads b/gcc/ada/sinfo.ads
index 9ef69c5ae63..90c10f90575 100644
--- a/gcc/ada/sinfo.ads
+++ b/gcc/ada/sinfo.ads
@@ -2883,6 +2883,7 @@ package Sinfo is
-- N_Access_Function_Definition
-- Sloc points to ACCESS
-- Null_Exclusion_Present (Flag11)
+ -- Null_Exclusion_In_Return_Present (Flag14)
-- Protected_Present (Flag6)
-- Parameter_Specifications (List3) (set to No_List if no formal part)
-- Result_Definition (Node4) result subtype (subtype mark or access def)
@@ -8088,6 +8089,9 @@ package Sinfo is
function Null_Exclusion_Present
(N : Node_Id) return Boolean; -- Flag11
+ function Null_Exclusion_In_Return_Present
+ (N : Node_Id) return Boolean; -- Flag14
+
function Null_Record_Present
(N : Node_Id) return Boolean; -- Flag17
@@ -8970,6 +8974,9 @@ package Sinfo is
procedure Set_Null_Exclusion_Present
(N : Node_Id; Val : Boolean := True); -- Flag11
+ procedure Set_Null_Exclusion_In_Return_Present
+ (N : Node_Id; Val : Boolean := True); -- Flag14
+
procedure Set_Null_Record_Present
(N : Node_Id; Val : Boolean := True); -- Flag17
@@ -11062,6 +11069,7 @@ package Sinfo is
pragma Inline (No_Truncation);
pragma Inline (Null_Present);
pragma Inline (Null_Exclusion_Present);
+ pragma Inline (Null_Exclusion_In_Return_Present);
pragma Inline (Null_Record_Present);
pragma Inline (Object_Definition);
pragma Inline (Original_Discriminant);
@@ -11353,6 +11361,7 @@ package Sinfo is
pragma Inline (Set_No_Truncation);
pragma Inline (Set_Null_Present);
pragma Inline (Set_Null_Exclusion_Present);
+ pragma Inline (Set_Null_Exclusion_In_Return_Present);
pragma Inline (Set_Null_Record_Present);
pragma Inline (Set_Object_Definition);
pragma Inline (Set_Original_Discriminant);