-- { 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; |