summaryrefslogtreecommitdiff
path: root/gcc/ada/sinfo.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2013-04-11 10:45:11 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2013-04-11 10:45:11 +0000
commit84c8f0b8db50a4eede16f595dcae9d7eedfe6dad (patch)
treea14bcd806f8dac2b6a1d64d38ad4c14ed7f2547b /gcc/ada/sinfo.adb
parentc504f070db1b70e627eaf2b7b3445eb34e097f6e (diff)
downloadgcc-84c8f0b8db50a4eede16f595dcae9d7eedfe6dad.tar.gz
2013-04-11 Robert Dewar <dewar@adacore.com>
* atree.h: Add declarations for Flag255-Flag289 Fix declaration of Field30 (was wrong, but no effect, since not yet referenced by back end) Add declarations for Field31-Field35 Add declarations for Node31-Node35. * einfo.ads, einfo.adb (Has_Invariants): No longer applies to procedures. (Has_Predicates): No longer applies to functions. (Is_Predicate_Function): New flag. (Is_Predicate_Function_M): New flag. (Is_Invariant_Procedure): New flag. (Predicate_Function_M): New function. (Set_Predicate_Function_M): New procedure. * exp_ch11.adb (Expand_N_Raise_Expression): Take care of special case of appearing in predicate used for membership test. * exp_ch3.adb (Insert_Component_Invariant_Checks): Set Is_Invariant_Procedure flag. * exp_ch4.adb (Expand_Op_In): Call special predicate function that takes care of raise_expression nodes in the predicate. * exp_util.ads, exp_util.adb (Make_Predicate_Call): Add argument Mem for membership case. * sem_ch13.adb (Build_Predicate_Functions): New name for Build_Predicate_Function. Major rewrite to take care of raise expression in predicate for membership tests. * sem_res.adb (Resolve_Actuals): Include both predicate functions in defense against infinite predicate function loops. * sinfo.ads, sinfo.adb (Convert_To_Return_False): New flag. 2013-04-11 Robert Dewar <dewar@adacore.com> * sem_prag.adb: Minor reformatting. 2013-04-11 Ed Schonberg <schonberg@adacore.com> * lib-xref.adb: Generate reference for component of anonymous access type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197766 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sinfo.adb')
-rw-r--r--gcc/ada/sinfo.adb16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ada/sinfo.adb b/gcc/ada/sinfo.adb
index 19896ea1c6f..98dbe553fae 100644
--- a/gcc/ada/sinfo.adb
+++ b/gcc/ada/sinfo.adb
@@ -602,6 +602,14 @@ package body Sinfo is
return Flag14 (N);
end Conversion_OK;
+ function Convert_To_Return_False
+ (N : Node_Id) return Boolean is
+ begin
+ pragma Assert (False
+ or else NT (N).Nkind = N_Raise_Expression);
+ return Flag13 (N);
+ end Convert_To_Return_False;
+
function Corresponding_Aspect
(N : Node_Id) return Node_Id is
begin
@@ -3685,6 +3693,14 @@ package body Sinfo is
Set_Flag14 (N, Val);
end Set_Conversion_OK;
+ procedure Set_Convert_To_Return_False
+ (N : Node_Id; Val : Boolean := True) is
+ begin
+ pragma Assert (False
+ or else NT (N).Nkind = N_Raise_Expression);
+ Set_Flag13 (N, Val);
+ end Set_Convert_To_Return_False;
+
procedure Set_Corresponding_Aspect
(N : Node_Id; Val : Node_Id) is
begin