Commit 9fa33291 by Robert Dewar Committed by Arnaud Charlet

2008-08-04 Robert Dewar <dewar@adacore.com>

	* sem_res.adb:
	(Valid_Conversion): Catch case of designated types having different
	sizes, even though they statically match.

From-SVN: r138615
parent 31e84512
...@@ -9519,7 +9519,27 @@ package body Sem_Res is ...@@ -9519,7 +9519,27 @@ package body Sem_Res is
(not Is_Constrained (Opnd) (not Is_Constrained (Opnd)
or else not Is_Constrained (Target))) or else not Is_Constrained (Target)))
then then
return True; -- Special case, if Value_Size has been used to make the
-- sizes different, the conversion is not allowed even
-- though the subtypes statically match.
if Known_Static_RM_Size (Target)
and then Known_Static_RM_Size (Opnd)
and then RM_Size (Target) /= RM_Size (Opnd)
then
Error_Msg_NE
("target designated subtype not compatible with }",
N, Opnd);
Error_Msg_NE
("\because sizes of the two designated subtypes differ",
N, Opnd);
return False;
-- Normal case where conversion is allowed
else
return True;
end if;
else else
Error_Msg_NE Error_Msg_NE
......
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