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