blob: 60e2199dba13eaeceac26765152e7ff506cb9367 [file] [log] [blame]
-- { dg-do compile }
-- { dg-options "-O2" }
procedure Boolean_Subtype1 is
subtype Component_T is Boolean;
function Condition return Boolean is
begin
return True;
end;
V : Integer := 0;
function Component_Value return Integer is
begin
V := V + 1;
return V;
end;
Most_Significant : Component_T := False;
Least_Significant : Component_T := True;
begin
if Condition then
Most_Significant := True;
end if;
if Condition then
Least_Significant := Component_T'Val (Component_Value);
end if;
if Least_Significant < Most_Significant then
Least_Significant := Most_Significant;
end if;
if Least_Significant /= True then
raise Program_Error;
end if;
end;