1-- { dg-do run }
2-- { dg-options "-gnato -O" }
3
4with Interfaces; use Interfaces;
5
6procedure Opt26 is
7
8   procedure Shift_Left_Bool
9     (Bool : in Boolean;
10      U8 : out Interfaces.Unsigned_8)
11   is
12   begin
13      U8 := Shift_Left (Boolean'Pos (Bool), 6);
14   end Shift_Left_Bool;
15
16   procedure Shift_Left_Not_Bool
17     (Bool : in Boolean;
18      U8 : out Interfaces.Unsigned_8)
19   is
20   begin
21      U8 := Shift_Left (Boolean'Pos (not Bool), 6);
22   end Shift_Left_Not_Bool;
23
24   Bool         : constant Boolean := True;
25   Byte1, Byte2 : Interfaces.Unsigned_8;
26
27begin
28
29   Shift_Left_Bool (Bool, Byte1);
30
31   Shift_Left_Not_Bool (Bool, Byte2);
32
33   if Byte1 + Byte2 /= 64 then
34     raise Program_Error;
35   end if;
36
37end;
38