exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing correct accessibility levels.

2008-08-01  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
	correct accessibility levels. In the "when others" case, retrieve the
	access level of the Etype of Prev rather than Prev_Orig, because the
	original exression has not always been analyzed.

From-SVN: r138493
This commit is contained in:
Gary Dismukes 2008-08-01 11:29:30 +02:00 committed by Arnaud Charlet
parent f252a7d6bd
commit 8ca3bf9177

View File

@ -2284,13 +2284,15 @@ package body Exp_Ch6 is
Intval => Scope_Depth (Current_Scope) + 1),
Extra_Accessibility (Formal));
-- For other cases we simply pass the level of the
-- actual's access type.
-- For other cases we simply pass the level of the actual's
-- access type. The type is retrieved from Prev rather than
-- Prev_Orig, because in some cases Prev_Orig denotes a
-- original expression that has not been analyzed.
when others =>
Add_Extra_Actual
(Make_Integer_Literal (Loc,
Intval => Type_Access_Level (Etype (Prev_Orig))),
Intval => Type_Access_Level (Etype (Prev))),
Extra_Accessibility (Formal));
end case;