aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2007-08-16 10:18:31 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2007-08-16 10:18:31 +0200
commitf0092c54c8dbbaeb8b34c99591b39415ad7e1442 (patch)
tree328ec01b0d3cd611a34a84e13298f3e5ed708536
parent439cafcf602f14564f086fec1bf832a0c0866d7f (diff)
downloadgcc-f0092c54c8dbbaeb8b34c99591b39415ad7e1442.zip
gcc-f0092c54c8dbbaeb8b34c99591b39415ad7e1442.tar.gz
gcc-f0092c54c8dbbaeb8b34c99591b39415ad7e1442.tar.bz2
Add test cases
From-SVN: r127534
-rw-r--r--gcc/testsuite/gnat.dg/controlled2.adb10
-rw-r--r--gcc/testsuite/gnat.dg/itypes.adb22
-rw-r--r--gcc/testsuite/gnat.dg/itypes.ads4
-rw-r--r--gcc/testsuite/gnat.dg/modify_a_constant.adb19
-rw-r--r--gcc/testsuite/gnat.dg/warn2.adb14
5 files changed, 69 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/controlled2.adb b/gcc/testsuite/gnat.dg/controlled2.adb
new file mode 100644
index 0000000..4fa61af
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/controlled2.adb
@@ -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
index 0000000..fc9f10d
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/itypes.adb
@@ -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
index 0000000..f6137e2
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/itypes.ads
@@ -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
index 0000000..576378b
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/modify_a_constant.adb
@@ -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
index 0000000..8675a52
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/warn2.adb
@@ -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;