summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_util.ads
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-04-14 16:23:18 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-04-14 16:23:18 +0000
commitab2ba306f09948ff09fef49f3592d714c38b2d93 (patch)
treeb12d13d305b3e049e0907c34ad5d505ce04fa415 /gcc/ada/exp_util.ads
parenta39fe8c82fd895251538269b679047bd6fc98ac5 (diff)
downloadgcc-ab2ba306f09948ff09fef49f3592d714c38b2d93.tar.gz
2008-04-14 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r134275 stilly buggy for libgcc muldi3: internal compiler error: in execute_ipa_pass_list, at passes.c:1235 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@134279 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_util.ads')
-rw-r--r--gcc/ada/exp_util.ads26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/ada/exp_util.ads b/gcc/ada/exp_util.ads
index 9c99323e8e4..73277afe16b 100644
--- a/gcc/ada/exp_util.ads
+++ b/gcc/ada/exp_util.ads
@@ -372,6 +372,13 @@ package Exp_Util is
-- operation which is not directly visible. If T is a class wide type,
-- then the reference is to an operation of the corresponding root type.
+ function Find_Protection_Object (Scop : Entity_Id) return Entity_Id;
+ -- Traverse the scope stack starting from Scop and look for an entry,
+ -- entry family, or a subprogram that has a Protection_Object and return
+ -- it. Raises Program_Error if no such entity is found since the context
+ -- in which this routine is invoked should always have a protection
+ -- object.
+
procedure Force_Evaluation
(Exp : Node_Id;
Name_Req : Boolean := False);
@@ -491,6 +498,13 @@ package Exp_Util is
-- Returns true if type T is not tagged and is a derived type,
-- or is a private type whose completion is such a type.
+ function Is_Volatile_Reference (N : Node_Id) return Boolean;
+ -- Checks if the node N represents a volatile reference, which can be
+ -- either a direct reference to a variable treated as volatile, or an
+ -- indexed/selected component where the prefix is treated as volatile,
+ -- or has Volatile_Components set. A slice of a volatile variable is
+ -- also volatile.
+
procedure Kill_Dead_Code (N : Node_Id; Warn : Boolean := False);
-- N represents a node for a section of code that is known to be dead. Any
-- exception handler references and warning messages relating to this code
@@ -613,6 +627,18 @@ package Exp_Util is
-- renamed subprogram. The node is rewritten to be an identifier that
-- refers directly to the renamed subprogram, given by entity E.
+ procedure Silly_Boolean_Array_Not_Test (N : Node_Id; T : Entity_Id);
+ -- N is the node for a boolean array NOT operation, and T is the type of
+ -- the array. This routine deals with the silly case where the subtype of
+ -- the boolean array is False..False or True..True, where it is required
+ -- that a Constraint_Error exception be raised (RM 4.5.6(6)).
+
+ procedure Silly_Boolean_Array_Xor_Test (N : Node_Id; T : Entity_Id);
+ -- N is the node for a boolean array XOR operation, and T is the type of
+ -- the array. This routine deals with the silly case where the subtype of
+ -- the boolean array is True..True, where a raise of a Constraint_Error
+ -- exception is required (RM 4.5.6(6)).
+
function Target_Has_Fixed_Ops
(Left_Typ : Entity_Id;
Right_Typ : Entity_Id;