aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/atree.ads
diff options
context:
space:
mode:
authorRobert Dewar <dewar@adacore.com>2015-05-22 10:25:20 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2015-05-22 12:25:20 +0200
commita02c5a694eab9da43296e18b0c669e731c31427a (patch)
tree1e54597e4f87629dea72d3cef787c9173b1bcbfe /gcc/ada/atree.ads
parent7a391e42e75bb13e036d521be84714a5ced2a4c4 (diff)
downloadgcc-a02c5a694eab9da43296e18b0c669e731c31427a.zip
gcc-a02c5a694eab9da43296e18b0c669e731c31427a.tar.gz
gcc-a02c5a694eab9da43296e18b0c669e731c31427a.tar.bz2
atree.adb, atree.ads (Needs_Actuals_Check): New flag.
2015-05-22 Robert Dewar <dewar@adacore.com> * atree.adb, atree.ads (Needs_Actuals_Check): New flag. From-SVN: r223536
Diffstat (limited to 'gcc/ada/atree.ads')
-rw-r--r--gcc/ada/atree.ads56
1 files changed, 35 insertions, 21 deletions
diff --git a/gcc/ada/atree.ads b/gcc/ada/atree.ads
index c1c330c..c3f9c5c 100644
--- a/gcc/ada/atree.ads
+++ b/gcc/ada/atree.ads
@@ -605,44 +605,46 @@ package Atree is
-- The following functions return the contents of the indicated field of
-- the node referenced by the argument, which is a Node_Id.
- function Analyzed (N : Node_Id) return Boolean;
+ function Analyzed (N : Node_Id) return Boolean;
pragma Inline (Analyzed);
- function Comes_From_Source (N : Node_Id) return Boolean;
+ function Comes_From_Source (N : Node_Id) return Boolean;
pragma Inline (Comes_From_Source);
- function Error_Posted (N : Node_Id) return Boolean;
+ function Error_Posted (N : Node_Id) return Boolean;
pragma Inline (Error_Posted);
- function Has_Aspects (N : Node_Id) return Boolean;
+ function Has_Aspects (N : Node_Id) return Boolean;
pragma Inline (Has_Aspects);
- function Is_Ignored_Ghost_Node
- (N : Node_Id) return Boolean;
+ function Is_Ignored_Ghost_Node (N : Node_Id) return Boolean;
pragma Inline (Is_Ignored_Ghost_Node);
- function Nkind (N : Node_Id) return Node_Kind;
+ function Needs_Actuals_Check (N : Node_Id) return Boolean;
+ pragma Inline (Needs_Actuals_Check);
+
+ function Nkind (N : Node_Id) return Node_Kind;
pragma Inline (Nkind);
- function No (N : Node_Id) return Boolean;
+ function No (N : Node_Id) return Boolean;
pragma Inline (No);
-- Tests given Id for equality with the Empty node. This allows notations
-- like "if No (Variant_Part)" as opposed to "if Variant_Part = Empty".
- function Parent (N : Node_Id) return Node_Id;
+ function Parent (N : Node_Id) return Node_Id;
pragma Inline (Parent);
-- Returns the parent of a node if the node is not a list member, or else
-- the parent of the list containing the node if the node is a list member.
- function Paren_Count (N : Node_Id) return Nat;
+ function Paren_Count (N : Node_Id) return Nat;
pragma Inline (Paren_Count);
- function Present (N : Node_Id) return Boolean;
+ function Present (N : Node_Id) return Boolean;
pragma Inline (Present);
-- Tests given Id for inequality with the Empty node. This allows notations
-- like "if Present (Statement)" as opposed to "if Statement /= Empty".
- function Sloc (N : Node_Id) return Source_Ptr;
+ function Sloc (N : Node_Id) return Source_Ptr;
pragma Inline (Sloc);
---------------------
@@ -893,26 +895,29 @@ package Atree is
-- to be set in the specified field. Note that Set_Nkind is in the next
-- section, since its use is restricted.
- procedure Set_Analyzed (N : Node_Id; Val : Boolean := True);
+ procedure Set_Analyzed (N : Node_Id; Val : Boolean := True);
pragma Inline (Set_Analyzed);
- procedure Set_Comes_From_Source (N : Node_Id; Val : Boolean);
+ procedure Set_Comes_From_Source (N : Node_Id; Val : Boolean);
pragma Inline (Set_Comes_From_Source);
-- Note that this routine is very rarely used, since usually the default
-- mechanism provided sets the right value, but in some unusual cases, the
-- value needs to be reset (e.g. when a source node is copied, and the copy
-- must not have Comes_From_Source set).
- procedure Set_Error_Posted (N : Node_Id; Val : Boolean := True);
+ procedure Set_Error_Posted (N : Node_Id; Val : Boolean := True);
pragma Inline (Set_Error_Posted);
- procedure Set_Has_Aspects (N : Node_Id; Val : Boolean := True);
+ procedure Set_Has_Aspects (N : Node_Id; Val : Boolean := True);
pragma Inline (Set_Has_Aspects);
procedure Set_Is_Ignored_Ghost_Node (N : Node_Id; Val : Boolean := True);
pragma Inline (Set_Is_Ignored_Ghost_Node);
- procedure Set_Original_Node (N : Node_Id; Val : Node_Id);
+ procedure Set_Needs_Actuals_Check (N : Node_Id; Val : Boolean := True);
+ pragma Inline (Set_Needs_Actuals_Check);
+
+ procedure Set_Original_Node (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Original_Node);
-- Note that this routine is used only in very peculiar cases. In normal
-- cases, the Original_Node link is set by calls to Rewrite. We currently
@@ -920,13 +925,13 @@ package Atree is
-- their aspect original source expressions, so that the original source
-- expressions accessed by ASIS are also semantically analyzed.
- procedure Set_Parent (N : Node_Id; Val : Node_Id);
+ procedure Set_Parent (N : Node_Id; Val : Node_Id);
pragma Inline (Set_Parent);
- procedure Set_Paren_Count (N : Node_Id; Val : Nat);
+ procedure Set_Paren_Count (N : Node_Id; Val : Nat);
pragma Inline (Set_Paren_Count);
- procedure Set_Sloc (N : Node_Id; Val : Source_Ptr);
+ procedure Set_Sloc (N : Node_Id; Val : Source_Ptr);
pragma Inline (Set_Sloc);
------------------------------
@@ -4123,16 +4128,25 @@ package Atree is
type Flags_Byte is record
Flag0 : Boolean;
+ -- Note: we don't use Flag0 at the moment. To put Flag0 into use
+ -- requires some awkward work in Treeprs (treeprs.adt), so for the
+ -- moment we don't use it.
+
Flag1 : Boolean;
Flag2 : Boolean;
Flag3 : Boolean;
+ -- These flags are used in the usual manner in Sinfo and Einfo
Is_Ignored_Ghost_Node : Boolean;
-- Flag denothing whether the node is subject to pragma Ghost with
-- policy Ignore. The name of the flag should be Flag4, however this
-- requires changing the names of all remaining 300+ flags.
- Spare1 : Boolean;
+ Needs_Actuals_Check : Boolean;
+ -- Flag set to indicate that the marked node is subject to the check
+ -- for writable actuals. See xxx for more details. Again it would be
+ -- more uniform to use some Flagx here, but that would be disruptive.
+
Spare2 : Boolean;
Spare3 : Boolean;
end record;