From 49e308f8c34eeaef4f32699067e9712606ceede0 Mon Sep 17 00:00:00 2001
From: Arnaud Charlet <charlet@gcc.gnu.org>
Date: Thu, 16 Aug 2007 15:58:54 +0200
Subject: [PATCH] Add new tests.

From-SVN: r127556
---
 gcc/testsuite/gnat.dg/array3.adb      | 37 +++++++++++++++++++++++++++
 gcc/testsuite/gnat.dg/controlled3.ads | 12 +++++++++
 gcc/testsuite/gnat.dg/controlled4.adb |  9 +++++++
 gcc/testsuite/gnat.dg/controlled4.ads |  5 ++++
 4 files changed, 63 insertions(+)
 create mode 100644 gcc/testsuite/gnat.dg/array3.adb
 create mode 100644 gcc/testsuite/gnat.dg/controlled3.ads
 create mode 100644 gcc/testsuite/gnat.dg/controlled4.adb
 create mode 100644 gcc/testsuite/gnat.dg/controlled4.ads

diff --git a/gcc/testsuite/gnat.dg/array3.adb b/gcc/testsuite/gnat.dg/array3.adb
new file mode 100644
index 000000000000..797692563705
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/array3.adb
@@ -0,0 +1,37 @@
+--  { 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;
diff --git a/gcc/testsuite/gnat.dg/controlled3.ads b/gcc/testsuite/gnat.dg/controlled3.ads
new file mode 100644
index 000000000000..4dee28a3cdcd
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/controlled3.ads
@@ -0,0 +1,12 @@
+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;
diff --git a/gcc/testsuite/gnat.dg/controlled4.adb b/gcc/testsuite/gnat.dg/controlled4.adb
new file mode 100644
index 000000000000..b823cc9f4e56
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/controlled4.adb
@@ -0,0 +1,9 @@
+--  { dg-do compile }
+
+package body controlled4 is
+   procedure Test_Suite is
+   begin
+      Add_Test
+        (new Test_Case'(Test_Case1 with Link_Under_Test => 300));
+   end Test_Suite;
+end;
diff --git a/gcc/testsuite/gnat.dg/controlled4.ads b/gcc/testsuite/gnat.dg/controlled4.ads
new file mode 100644
index 000000000000..5ea458a5da27
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/controlled4.ads
@@ -0,0 +1,5 @@
+
+with controlled3; use controlled3;
+package controlled4 is
+   procedure Test_Suite;
+end;
-- 
GitLab