Add test cases
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Aug 2007 08:18:31 +0000 (08:18 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Aug 2007 08:18:31 +0000 (08:18 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127534 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/gnat.dg/controlled2.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/itypes.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/itypes.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/modify_a_constant.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/warn2.adb [new file with mode: 0644]

diff --git a/gcc/testsuite/gnat.dg/controlled2.adb b/gcc/testsuite/gnat.dg/controlled2.adb
new file mode 100644 (file)
index 0000000..4fa61af
--- /dev/null
@@ -0,0 +1,10 @@
+--  { dg-do compile }
+
+with controlled1; use controlled1;
+package body controlled2 is
+   procedure Test_Suite is
+   begin
+      Add_Test
+        (new Test_Case'(Test_Case1 with Link_Under_Test => 300));
+   end Test_Suite;
+end controlled2;
diff --git a/gcc/testsuite/gnat.dg/itypes.adb b/gcc/testsuite/gnat.dg/itypes.adb
new file mode 100644 (file)
index 0000000..fc9f10d
--- /dev/null
@@ -0,0 +1,22 @@
+--  { dg-do compile }
+
+package body itypes is
+   Size : constant := 10;
+   type Arr is array (1 .. size) of Integer;
+   
+   type Rec is record
+      Field1 : Arr := (others => 0);
+      Field2 : Arr := (others => 0);
+      Field3 : Arr := (others => 0);
+      Field4 : Arr := (others => 0);
+      Field5 : Arr := (others => 0);
+      Field6 : Arr := (others => 0);
+      Field7 : Arr := (others => 0);
+   end record;
+   
+   procedure Proc is
+      Temp1 : Rec;
+   begin   
+      null;
+   end;    
+end;                 
diff --git a/gcc/testsuite/gnat.dg/itypes.ads b/gcc/testsuite/gnat.dg/itypes.ads
new file mode 100644 (file)
index 0000000..f6137e2
--- /dev/null
@@ -0,0 +1,4 @@
+
+package itypes is
+   procedure Proc;
+end;  
diff --git a/gcc/testsuite/gnat.dg/modify_a_constant.adb b/gcc/testsuite/gnat.dg/modify_a_constant.adb
new file mode 100644 (file)
index 0000000..576378b
--- /dev/null
@@ -0,0 +1,19 @@
+--  { dg-do compile }
+
+with text_io; use text_io;
+procedure modify_a_constant is
+    type Outer;
+    type Inner (Outer_Ref : access Outer) is limited null record;
+        
+    type Outer is limited record
+        Inner_Field   : Inner (Outer_Ref => Outer'Access);
+        Integer_Field : Integer;
+      end record;
+     
+    X : constant Outer := (Inner_Field => <>, Integer_Field => 123);
+     
+begin
+   Put_Line (Integer'image (X.Integer_Field));
+   X.Inner_Field.Outer_Ref.Integer_Field := 0;
+   Put_Line (Integer'image (X.Integer_Field));
+end Modify_A_Constant;
diff --git a/gcc/testsuite/gnat.dg/warn2.adb b/gcc/testsuite/gnat.dg/warn2.adb
new file mode 100644 (file)
index 0000000..8675a52
--- /dev/null
@@ -0,0 +1,14 @@
+--  { dg-do compile }
+
+with Unchecked_Conversion;
+procedure warn2 is
+   type R1 is record X : Integer; end record;
+   type R2 is record X, Y : Integer; end record;
+   pragma Warnings
+     (Off, "types for unchecked conversion have different sizes");
+   function F is new Unchecked_Conversion (R1, R2);
+   pragma Warnings
+     (On, "types for unchecked conversion have different sizes");
+begin
+   null;
+end warn2;