Commit 47190c6b by Arnaud Charlet

exp_pakd.adb (Convert_To_PAT_Type): After replacing the original type of the…

exp_pakd.adb (Convert_To_PAT_Type): After replacing the original type of the object with the packed array type...

	* exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
	type of the object with the packed array type, set the Analyzed flag
	on the object if it is an entity or simple indexed component, to avoid
	spurious type errors.

From-SVN: r90909
parent d10ad8ff
......@@ -685,7 +685,24 @@ package body Exp_Pakd is
-- because the expression will not be further analyzed, and Gigi
-- considers the two types equivalent in any case.
-- This is not strictly the case ??? If the reference is an actual
-- in a call, the expansion of the prefix is delayed, and must be
-- reanalyzed, see Reset_Packed_Prefix. On the other hand, if the
-- prefix is a simple array reference, reanalysis can produce spurious
-- type errors when the PAT type is replaced again with the original
-- type of the array. The following is correct and minimal, but the
-- handling of more complex packed expressions in actuals is confused.
-- It is likely that the problem only remains for actuals in calls.
Set_Etype (Aexp, Packed_Array_Type (Act_ST));
if Is_Entity_Name (Aexp)
or else
(Nkind (Aexp) = N_Indexed_Component
and then Is_Entity_Name (Prefix (Aexp)))
then
Set_Analyzed (Aexp);
end if;
end Convert_To_PAT_Type;
------------------------------
......
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