--- /dev/null
+-- { dg-do run }
+
+with Ada.Containers.Vectors;
+with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
+procedure array3 is
+ type Method_Kinds is (Signal, Slot, Method);
+
+ package Unbounded_String_Vectors is
+ new Ada.Containers.Vectors
+ (Positive, Ada.Strings.Unbounded.Unbounded_String);
+
+ Params_Vector : Unbounded_String_Vectors.Vector;
+
+ type Method_Info is record
+ Name : Ada.Strings.Unbounded.Unbounded_String;
+ Signature : Ada.Strings.Unbounded.Unbounded_String;
+ Parameters : Unbounded_String_Vectors.Vector;
+ Kind : Method_Kinds;
+ end record;
+
+ package Method_Info_Vectors is
+ new Ada.Containers.Vectors (Positive, Method_Info);
+
+ Signals : Method_Info_Vectors.Vector;
+begin
+
+ Unbounded_String_Vectors.Append
+ (Params_Vector,
+ Ada.Strings.Unbounded.To_Unbounded_String ("AAA"));
+
+ Method_Info_Vectors.Append
+ (Signals,
+ (Name => To_Unbounded_String (""),
+ Signature => To_Unbounded_String (""),
+ Parameters => Params_Vector,
+ Kind => Signal));
+end;
--- /dev/null
+with Ada.Finalization; use Ada.Finalization;
+package controlled3 is
+ type Test is new Controlled with null record;
+ procedure Add_Test (T : access Test'Class);
+
+ type Test_Case1 is new Test with null record;
+ type Test_Suite is new Test with null record;
+
+ type Test_Case is new Test_Case1 with record
+ Link_Under_Test : Natural;
+ end record;
+end;