Commit 24357840 by Robert Dewar Committed by Arnaud Charlet

sem_aux.ads, [...] (Nearest_Current_Scope): New function.

2009-04-10  Robert Dewar  <dewar@adacore.com>

	* sem_aux.ads, sem_aux.adb (Nearest_Current_Scope): New function.

	* sem_res.adb (Resolve_Call): Fix test for
	Suppress_Value_Tracking_On_Call (was wrong for the case of a call from
	a non-dynamic scope).

From-SVN: r145881
parent 4f64abad
2009-04-10 Robert Dewar <dewar@adacore.com> 2009-04-10 Robert Dewar <dewar@adacore.com>
* sem_aux.ads, sem_aux.adb (Nearest_Current_Scope): New function.
* sem_res.adb (Resolve_Call): Fix test for
Suppress_Value_Tracking_On_Call (was wrong for the case of a call from
a non-dynamic scope).
2009-04-10 Robert Dewar <dewar@adacore.com>
* make.adb: Add comment. * make.adb: Add comment.
Minor reformatting Minor reformatting
...@@ -158,7 +158,7 @@ package body Sem_Aux is ...@@ -158,7 +158,7 @@ package body Sem_Aux is
----------------------------- -----------------------------
function Enclosing_Dynamic_Scope (Ent : Entity_Id) return Entity_Id is function Enclosing_Dynamic_Scope (Ent : Entity_Id) return Entity_Id is
S : Entity_Id; S : Entity_Id;
begin begin
-- The following test is an error defense against some syntax -- The following test is an error defense against some syntax
...@@ -710,6 +710,19 @@ package body Sem_Aux is ...@@ -710,6 +710,19 @@ package body Sem_Aux is
end if; end if;
end Is_Limited_Type; end Is_Limited_Type;
---------------------------
-- Nearest_Dynamic_Scope --
---------------------------
function Nearest_Dynamic_Scope (Ent : Entity_Id) return Entity_Id is
begin
if Is_Dynamic_Scope (Ent) then
return Ent;
else
return Enclosing_Dynamic_Scope (Ent);
end if;
end Nearest_Dynamic_Scope;
------------------------ ------------------------
-- Next_Tag_Component -- -- Next_Tag_Component --
------------------------ ------------------------
......
...@@ -180,6 +180,11 @@ package Sem_Aux is ...@@ -180,6 +180,11 @@ package Sem_Aux is
-- composite containing a limited component, or a subtype of any of -- composite containing a limited component, or a subtype of any of
-- these types). -- these types).
function Nearest_Dynamic_Scope (Ent : Entity_Id) return Entity_Id;
-- This is similar to Enclosing_Dynamic_Scope except that if Ent is itself
-- a dynamic scope, then it is returned. Otherwise the result is the same
-- as that returned by Enclosing_Dynamic_Scope.
function Next_Tag_Component (Tag : Entity_Id) return Entity_Id; function Next_Tag_Component (Tag : Entity_Id) return Entity_Id;
-- Tag must be an entity representing a _Tag field of a tagged record. -- Tag must be an entity representing a _Tag field of a tagged record.
-- The result returned is the next _Tag field in this record, or Empty -- The result returned is the next _Tag field in this record, or Empty
......
...@@ -5150,7 +5150,8 @@ package body Sem_Res is ...@@ -5150,7 +5150,8 @@ package body Sem_Res is
if Inside_Freezing_Actions = 0 if Inside_Freezing_Actions = 0
and then (not Is_Library_Level_Entity (Nam) and then (not Is_Library_Level_Entity (Nam)
or else Suppress_Value_Tracking_On_Call (Current_Scope)) or else Suppress_Value_Tracking_On_Call
(Nearest_Dynamic_Scope (Current_Scope)))
and then (Comes_From_Source (Nam) and then (Comes_From_Source (Nam)
or else (Present (Alias (Nam)) or else (Present (Alias (Nam))
and then Comes_From_Source (Alias (Nam)))) and then Comes_From_Source (Alias (Nam))))
......
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