Commit 44d8d2bb by Ed Schonberg Committed by Geert Bosch

exp_ch7.adb (Find_Final_List): for a type appearing in a with_type clause...

	* exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
	clause, return the gobal finalization list, for lack of anthing else.

From-SVN: r46210
parent 89b894e1
2001-10-11 Ed Schonberg <schonber@gnat.com> 2001-10-11 Ed Schonberg <schonber@gnat.com>
* exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
clause, return the gobal finalization list, for lack of anthing else.
2001-10-11 Ed Schonberg <schonber@gnat.com>
* exp_ch7.adb (Make_Transient_Block): if statement is within * exp_ch7.adb (Make_Transient_Block): if statement is within
exception handler, always use new transient scope to place Clean exception handler, always use new transient scope to place Clean
procedure. procedure.
......
...@@ -1140,14 +1140,21 @@ package body Exp_Ch7 is ...@@ -1140,14 +1140,21 @@ package body Exp_Ch7 is
-- Case of a dynamically allocated object. The final list is the -- Case of a dynamically allocated object. The final list is the
-- corresponding list controller (The next entity in the scope of -- corresponding list controller (The next entity in the scope of
-- the access type with the right type) -- the access type with the right type). If the type comes from a
-- With_Type clause, no controller was created, and we use the
-- global chain instead.
elsif Is_Access_Type (E) then elsif Is_Access_Type (E) then
return if not From_With_Type (E) then
Make_Selected_Component (Loc, return
Prefix => Make_Selected_Component (Loc,
New_Reference_To (Associated_Final_Chain (Base_Type (E)), Loc), Prefix =>
Selector_Name => Make_Identifier (Loc, Name_F)); New_Reference_To
(Associated_Final_Chain (Base_Type (E)), Loc),
Selector_Name => Make_Identifier (Loc, Name_F));
else
return New_Reference_To (RTE (RE_Global_Final_List), Sloc (E));
end if;
else else
if Is_Dynamic_Scope (E) then if Is_Dynamic_Scope (E) then
......
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