Commit 0b09835f by Ed Schonberg Committed by Geert Bosch

sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance that is…

sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance that is the parent of other generics...

	* sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
	that is the parent of other generics, the instance body replaces the
	instance node.  Retrieve the instance of the spec, which is the one
	that is visible in clients and within the body.

From-SVN: r47906
parent 598c3446
2001-12-11 Ed Schonberg <schonber@gnat.com>
* sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
that is the parent of other generics, the instance body replaces the
instance node. Retrieve the instance of the spec, which is the one
that is visible in clients and within the body.
2001-12-11 Vincent Celier <celier@gnat.com>
* gnatmain.adb: Initial version.
......
......@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- $Revision: 1.402 $
-- $Revision$
-- --
-- Copyright (C) 1992-2001 Free Software Foundation, Inc. --
-- --
......@@ -2708,10 +2708,21 @@ package body Sem_Ch10 is
-------------------------
procedure Install_Withed_Unit (With_Clause : Node_Id) is
Uname : constant Entity_Id := Entity (Name (With_Clause));
Uname : Entity_Id := Entity (Name (With_Clause));
P : constant Entity_Id := Scope (Uname);
begin
-- If the unit is a package instantiation, its body may have been
-- generated for an inner instance, and the instance now denotes the
-- body entity. For visibility purposes we need the instance in the
-- specification.
if Ekind (Uname) = E_Package_Body
and then Is_Generic_Instance (Uname)
then
Uname := Spec_Entity (Uname);
end if;
-- We do not apply the restrictions to an internal unit unless
-- we are compiling the internal unit as a main unit. This check
-- is also skipped for dummy units (for missing packages).
......
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