Commit a02c5a69 by Robert Dewar Committed by Arnaud Charlet

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
parent 7a391e42
2015-05-22 Robert Dewar <dewar@adacore.com>
* atree.adb, atree.ads (Needs_Actuals_Check): New flag.
2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Analyze_Pragma): Remove the detection
......
......@@ -594,6 +594,10 @@ package body Atree is
Set_Is_Ignored_Ghost_Node (New_Id);
end if;
-- Clear Needs_Actual_Check to False
Set_Needs_Actuals_Check (New_Id, False);
-- Specifically copy Paren_Count to deal with creating new table entry
-- if the parentheses count is at the maximum possible value already.
......@@ -1489,6 +1493,15 @@ package body Atree is
Nodes.Table (New_Node).Rewrite_Ins := True;
end Mark_Rewrite_Insertion;
-------------------------
-- Needs_Actuals_Check --
-------------------------
function Needs_Actuals_Check (N : Node_Id) return Boolean is
begin
return Flags.Table (N).Needs_Actuals_Check;
end Needs_Actuals_Check;
--------------
-- New_Copy --
--------------
......@@ -2097,6 +2110,15 @@ package body Atree is
Flags.Table (N).Is_Ignored_Ghost_Node := Val;
end Set_Is_Ignored_Ghost_Node;
-----------------------------
-- Set_Needs_Actuals_Check --
-----------------------------
procedure Set_Needs_Actuals_Check (N : Node_Id; Val : Boolean := True) is
begin
Flags.Table (N).Needs_Actuals_Check := Val;
end Set_Needs_Actuals_Check;
-----------------------
-- Set_Original_Node --
-----------------------
......
......@@ -617,10 +617,12 @@ package Atree is
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 Needs_Actuals_Check (N : Node_Id) return Boolean;
pragma Inline (Needs_Actuals_Check);
function Nkind (N : Node_Id) return Node_Kind;
pragma Inline (Nkind);
......@@ -912,6 +914,9 @@ package Atree is
procedure Set_Is_Ignored_Ghost_Node (N : Node_Id; Val : Boolean := True);
pragma Inline (Set_Is_Ignored_Ghost_Node);
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
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment