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:
parent
c852a0a90d
commit
26168a32da
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue