1pragma Restrictions (No_Abort_Statements);
2pragma Restrictions (Max_Asynchronous_Select_Nesting => 0);
3
4with Ada.Finalization;
5with System.Atomic_Counters;
6
7package Opt75_Pkg is
8
9  type Rec is record
10    Counter : System.Atomic_Counters.Atomic_Counter;
11  end record;
12
13  type Rec_Ptr is access all Rec;
14
15  Empty_Rec : aliased Rec;
16
17  type T is new Ada.Finalization.Controlled with record
18    Ref : Rec_Ptr := Empty_Rec'Access;
19  end record;
20
21  overriding procedure Adjust (Object : in out T);
22
23  Empty : constant T := (Ada.Finalization.Controlled with Ref => Empty_Rec'Access);
24
25  type Arr is array (Integer range 1 .. 8, Integer range 1 .. 4) of T;
26
27end Opt75_Pkg;
28