blob: 50f3cee9ed9548ba159b8771947c30e6a656fa16 [file] [log] [blame]
-- { dg-do run }
-- { dg-options "-O2 -gnatp -fno-omit-frame-pointer" }
procedure Opt76 is
type Integer_Access is access Integer;
type Registry_Array is array (Natural range <>) of Integer_Access;
procedure Nested (Input, Parser : Integer; A, B : Boolean) is
Index : Registry_Array (1 .. 1024);
Not_B : constant Boolean := not B;
procedure Inner (Input : Integer) is
begin
if Input /= 1 then
raise Program_Error;
end if;
if Parser = 128 and then A and then Not_B then
Inner (Input);
Index (Index'First) := null;
end if;
end;
begin
Inner (Input);
end;
Input : Integer := 1 with Volatile;
Parser : Integer := 2 with Volatile;
begin
Nested (Input, Parser, False, True);
Nested (Input, Parser, True, False);
end;