summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/specs/controlled1.ads
blob: 1ceedaf37799f95e1668cbbdfa47f576996c483a (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 compile }

with Ada.Finalization;
with Controlled1_Pkg; use Controlled1_Pkg;

package Controlled1 is

   type Collection is new Ada.Finalization.Controlled with null record;

   type Object_Kind_Type is (One, Two);

   type Byte_Array is array (Natural range <>) of Integer;

   type Bounded_Byte_Array_Type is record
     A : Byte_Array (1 .. Value);
   end record;

   type Object_Type is tagged record
     A : Bounded_Byte_Array_Type;
   end record;

   type R_Object_Type is new Object_Type with record
      L : Collection;
   end record;

   type Obj_Type (Kind : Object_Kind_Type := One) is record
      case Kind is
         when One => R : R_Object_Type;
         when others => null;
      end case;
   end record;

   type Obj_Array_Type is array (Positive range <>) of Obj_Type;

end Controlled1;