diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2007-08-16 15:51:43 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2007-08-16 15:51:43 +0200 |
commit | 21d0fa1ef08190fcfe68bd0d00ac3da0ad7afa1b (patch) | |
tree | ce1f9dbdd1ec6ab23c32a4ac499c5a1911dfe3fe /gcc | |
parent | 04fdb7f8c7c88bea2186581af4e4dea9a9e17cbe (diff) | |
download | gcc-21d0fa1ef08190fcfe68bd0d00ac3da0ad7afa1b.zip gcc-21d0fa1ef08190fcfe68bd0d00ac3da0ad7afa1b.tar.gz gcc-21d0fa1ef08190fcfe68bd0d00ac3da0ad7afa1b.tar.bz2 |
Add new tests.
From-SVN: r127555
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/gnat.dg/deref1.ads | 4 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/deref2.ads | 13 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/deref3.adb | 10 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/discr_test.adb | 31 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/elim1.adb | 6 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/elim1.ads | 5 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/elim2.adb | 7 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/specs/limited1.ads | 12 |
8 files changed, 88 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/deref1.ads b/gcc/testsuite/gnat.dg/deref1.ads new file mode 100644 index 0000000..3da99ab --- /dev/null +++ b/gcc/testsuite/gnat.dg/deref1.ads @@ -0,0 +1,4 @@ +package deref1 is + type T is tagged limited null record; + procedure Op (Obj : in out T); +end deref1; diff --git a/gcc/testsuite/gnat.dg/deref2.ads b/gcc/testsuite/gnat.dg/deref2.ads new file mode 100644 index 0000000..84d509f --- /dev/null +++ b/gcc/testsuite/gnat.dg/deref2.ads @@ -0,0 +1,13 @@ +with deref1; +package deref2 is + type NT is tagged limited private; + + function PT_View (Obj : not null access NT) + return not null access deref1.T'Class; +private + type PT (Obj : not null access NT) is new deref1.T with null record; + + type NT is tagged limited record + PT_View : aliased PT (NT'Access); + end record; +end; diff --git a/gcc/testsuite/gnat.dg/deref3.adb b/gcc/testsuite/gnat.dg/deref3.adb new file mode 100644 index 0000000..b0edb18 --- /dev/null +++ b/gcc/testsuite/gnat.dg/deref3.adb @@ -0,0 +1,10 @@ +-- { dg-do compile } + +with deref2; +procedure deref3 is + Obj : aliased deref2.NT; +begin + deref2.PT_View (Obj'Access).Op; + Obj.PT_View.all.Op; + Obj.PT_View.Op; +end; diff --git a/gcc/testsuite/gnat.dg/discr_test.adb b/gcc/testsuite/gnat.dg/discr_test.adb new file mode 100644 index 0000000..1a6a4d2 --- /dev/null +++ b/gcc/testsuite/gnat.dg/discr_test.adb @@ -0,0 +1,31 @@ +-- { dg-do compile } + +procedure Discr_Test is + procedure P is begin null; end P; + + task type Tsk1 is + entry rvT; + end Tsk1; + + task body Tsk1 is + begin + accept rvT; + end Tsk1; + + task type Tsk2 (pS : not null access procedure) is + entry rvT; + end Tsk2; + + task body Tsk2 is + tskT : Tsk1; + begin + accept rvT do + requeue tskT.rvT; + end rvT; + pS.all; + end; + + Obj : Tsk2 (P'access); +begin + Obj.rvT; +end; diff --git a/gcc/testsuite/gnat.dg/elim1.adb b/gcc/testsuite/gnat.dg/elim1.adb new file mode 100644 index 0000000..7d2ddd1 --- /dev/null +++ b/gcc/testsuite/gnat.dg/elim1.adb @@ -0,0 +1,6 @@ +package body elim1 is + procedure d (a : t) is + begin + null; + end; +end; diff --git a/gcc/testsuite/gnat.dg/elim1.ads b/gcc/testsuite/gnat.dg/elim1.ads new file mode 100644 index 0000000..7a7bd35 --- /dev/null +++ b/gcc/testsuite/gnat.dg/elim1.ads @@ -0,0 +1,5 @@ +pragma Eliminate (p, d); +package elim1 is + type t is tagged null record; + procedure d (a : t); +end; diff --git a/gcc/testsuite/gnat.dg/elim2.adb b/gcc/testsuite/gnat.dg/elim2.adb new file mode 100644 index 0000000..a816f08 --- /dev/null +++ b/gcc/testsuite/gnat.dg/elim2.adb @@ -0,0 +1,7 @@ +-- { dg-do run } + +with elim1; +procedure elim2 is +begin + null; +end; diff --git a/gcc/testsuite/gnat.dg/specs/limited1.ads b/gcc/testsuite/gnat.dg/specs/limited1.ads new file mode 100644 index 0000000..268eb22 --- /dev/null +++ b/gcc/testsuite/gnat.dg/specs/limited1.ads @@ -0,0 +1,12 @@ +-- { dg-do compile } + +package limited1 is + pragma Pure; + + type Buffer is limited interface; + type Synchronous_Buffer_Type is synchronized interface and Buffer; + type Client_Buffer_Type is new Synchronous_Buffer_Type with private; + +private + type Client_Buffer_Type is new Synchronous_Buffer_Type with null record; +end limited1; |