* 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).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145881
138bc75d-0d04-0410-961f-
82ee72b054a4
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.
Minor reformatting
-----------------------------
function Enclosing_Dynamic_Scope (Ent : Entity_Id) return Entity_Id is
- S : Entity_Id;
+ S : Entity_Id;
begin
-- The following test is an error defense against some syntax
end if;
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 --
------------------------
-- composite containing a limited component, or a subtype of any of
-- 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;
-- 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
if Inside_Freezing_Actions = 0
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)
or else (Present (Alias (Nam))
and then Comes_From_Source (Alias (Nam))))