blob: 641d28ed97c3bf34282deef898454325bae46668 [file] [log] [blame]
-- { dg-do run }
-- { dg-options "-O" }
procedure Loop_Optimization24 is
procedure Callback is
begin
raise Constraint_Error;
end;
type Thread_Name_Ptr is access constant String;
type Callback_Ptr is access procedure;
type Callback_Information is record
Name : Thread_Name_Ptr;
Proc : Callback_Ptr;
end record;
type Callback_List is array (Positive range <>) of Callback_Information;
Cbs : Callback_List
:= (1 => (Proc => Callback'access, name => new String'("Callback")),
2 => (Proc => Callback'access, name => new String'("Callback")));
begin
for Index in Cbs'Range loop
begin
if Cbs(Index).proc /= null then
Cbs(Index).proc.all;
end if;
exception
when Constraint_Error => null;
end;
end loop;
end;