ada: Allow use of writable parameters inside function with side-effects

Writable parameters can be used as global outputs inside functions with
side-effects.

gcc/ada/

	* sem_prag.adb (Collect_Global_Item): Handle functions with
	side-effects.
This commit is contained in:
Piotr Trojanek 2024-01-04 17:37:06 +01:00 committed by Marc Poulhiès
parent d917954922
commit ec1cdad89a

View file

@ -31656,8 +31656,9 @@ package body Sem_Prag is
-- outputs when the related type is access-to-variable.
if Ekind (Formal) = E_In_Parameter
and then Ekind (Spec_Id) not in E_Function
| E_Generic_Function
and then (Ekind (Spec_Id) not in E_Function
| E_Generic_Function
or else Is_Function_With_Side_Effects (Spec_Id))
and then Is_Access_Variable (Etype (Formal))
then
Append_New_Elmt (Formal, Subp_Outputs);