sem_prag.adb (Check_Mode): Do not emit an error when inspecting a self referencial output item of an...

2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Check_Mode): Do not emit an
	error when inspecting a self referencial output item of an
	unconstrained type.

From-SVN: r203545
This commit is contained in:
Hristian Kirtchev 2013-10-14 13:21:37 +00:00 committed by Arnaud Charlet
parent c852a0a90d
commit 26168a32da
2 changed files with 15 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2013-10-14 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Check_Mode): Do not emit an
error when inspecting a self referencial output item of an
unconstrained type.
2013-10-14 Tristan Gingold <gingold@adacore.com>
* exp_prag.adb (Expand_Pragma_Import_Export_Exception): Fix

View File

@ -928,6 +928,15 @@ package body Sem_Prag is
Error_Msg_NE ("item & must have mode in out", Item, Item_Id);
end if;
-- A self-referential out parameter of an unconstrained or tagged
-- type acts as an input because the discriminants, array bounds
-- or the tag may be read.
elsif Ekind (Item_Id) = E_Out_Parameter
and then Is_Unconstrained_Or_Tagged_Item (Item_Id)
then
null;
-- Self-referential parameter
elsif Ekind (Item_Id) /= E_In_Out_Parameter then