-- { dg-do run } -- { dg-options "-O -gnatp" } with Volatile11_Pkg; use Volatile11_Pkg; procedure Volatile11 is Value : Integer := 1; Bit1 : Boolean := false; pragma Volatile (Bit1); Bit2 : Boolean := false; pragma Volatile (Bit2); Bit3 : Boolean := false; pragma Volatile (Bit3); Bit4 : Boolean := false; pragma Volatile (Bit4); Bit5 : Boolean := false; pragma Volatile (Bit5); Bit6 : Boolean := false; pragma Volatile (Bit6); Bit7 : Boolean := false; pragma Volatile (Bit7); Bit8 : Boolean := false; pragma Volatile (Bit8); begin Bit_Test(Input => Value, Output1 => Bit1, Output2 => Bit2, Output3 => Bit3, Output4 => Bit4, Output5 => Bit5, Output6 => Bit6, Output7 => Bit7, Output8 => F.all); -- Check that F is invoked before Bit_Test if B /= True then raise Program_Error; end if; end;