-- { dg-do run } -- { dg-options "-gnato -O" } with Interfaces; use Interfaces; procedure Opt26 is procedure Shift_Left_Bool (Bool : in Boolean; U8 : out Interfaces.Unsigned_8) is begin U8 := Shift_Left (Boolean'Pos (Bool), 6); end Shift_Left_Bool; procedure Shift_Left_Not_Bool (Bool : in Boolean; U8 : out Interfaces.Unsigned_8) is begin U8 := Shift_Left (Boolean'Pos (not Bool), 6); end Shift_Left_Not_Bool; Bool : constant Boolean := True; Byte1, Byte2 : Interfaces.Unsigned_8; begin Shift_Left_Bool (Bool, Byte1); Shift_Left_Not_Bool (Bool, Byte2); if Byte1 + Byte2 /= 64 then raise Program_Error; end if; end;