-- { dg-do run } -- { dg-options "-gnatws -gnatVa" } pragma Initialize_Scalars; procedure Invalid1 is X : Boolean; A : Boolean := False; procedure Uninit (B : out Boolean) is begin if A then B := True; raise Program_Error; end if; end; begin -- first, check that initialize_scalars is enabled begin if X then A := False; end if; raise Program_Error; exception when Constraint_Error => null; end; -- second, check if copyback of an invalid value raises constraint error begin Uninit (A); if A then -- we expect constraint error in the 'if' above according to gnat ug: -- .... -- call. Note that there is no specific option to test `out' -- parameters, but any reference within the subprogram will be tested -- in the usual manner, and if an invalid value is copied back, any -- reference to it will be subject to validity checking. -- ... raise Program_Error; end if; raise Program_Error; exception when Constraint_Error => null; end; end;