blob: 641d28ed97c3bf34282deef898454325bae46668 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
-- { 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;
|