* sem_prag.adb (Check_Mode): Do not emit an
error when inspecting a self referencial output item of an
unconstrained type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203545
138bc75d-0d04-0410-961f-
82ee72b054a4
+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
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