summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-10-24 16:43:32 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-10-24 16:43:32 +0000
commitd68b5255b5b313cf2f63584f1a46e23530592cf6 (patch)
treea9b82c0074f9520554b71249f6d2f1ad28f5a55f /gcc/testsuite/gnat.dg
parent30ab0a1063bf6d5b1125cf73add64ee69a41d00c (diff)
downloadgcc-d68b5255b5b313cf2f63584f1a46e23530592cf6.tar.gz
2009-10-24 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 153531 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@153533 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gnat.dg')
-rw-r--r--gcc/testsuite/gnat.dg/null_pointer_deref1.adb21
-rw-r--r--gcc/testsuite/gnat.dg/null_pointer_deref2.adb28
-rw-r--r--gcc/testsuite/gnat.dg/opt4.adb22
-rw-r--r--gcc/testsuite/gnat.dg/specs/pack4.ads12
4 files changed, 83 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/null_pointer_deref1.adb b/gcc/testsuite/gnat.dg/null_pointer_deref1.adb
new file mode 100644
index 00000000000..817155dc1c9
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/null_pointer_deref1.adb
@@ -0,0 +1,21 @@
+-- { dg-do run }
+-- { dg-options "-gnatp" }
+
+-- This test requires architecture- and OS-specific support code for unwinding
+-- through signal frames (typically located in *-unwind.h) to pass. Feel free
+-- to disable it if this code hasn't been implemented yet.
+
+procedure Null_Pointer_Deref1 is
+ type Int_Ptr is access all Integer;
+
+ function Ident return Int_Ptr is
+ begin
+ return null;
+ end;
+
+ Data : Int_Ptr := Ident;
+begin
+ Data.all := 1;
+exception
+ when Storage_Error => null;
+end;
diff --git a/gcc/testsuite/gnat.dg/null_pointer_deref2.adb b/gcc/testsuite/gnat.dg/null_pointer_deref2.adb
new file mode 100644
index 00000000000..b1dd548f01b
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/null_pointer_deref2.adb
@@ -0,0 +1,28 @@
+-- { dg-do run }
+-- { dg-options "-gnatp" }
+
+-- This test requires architecture- and OS-specific support code for unwinding
+-- through signal frames (typically located in *-unwind.h) to pass. Feel free
+-- to disable it if this code hasn't been implemented yet.
+
+procedure Null_Pointer_Deref2 is
+
+ task T;
+
+ task body T is
+ type Int_Ptr is access all Integer;
+
+ function Ident return Int_Ptr is
+ begin
+ return null;
+ end;
+ Data : Int_Ptr := Ident;
+ begin
+ Data.all := 1;
+ exception
+ when Storage_Error => null;
+ end T;
+
+begin
+ null;
+end;
diff --git a/gcc/testsuite/gnat.dg/opt4.adb b/gcc/testsuite/gnat.dg/opt4.adb
new file mode 100644
index 00000000000..caa5ab3a6cb
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/opt4.adb
@@ -0,0 +1,22 @@
+-- { dg-do run }
+-- { dg-options "-O2" }
+
+procedure Opt4 is
+
+ type Rec (D : Natural) is record
+ S : String (1..D);
+ end record;
+
+ procedure Test (R : Rec) is
+ begin
+ if R.D /= 9 then
+ raise Program_Error;
+ end if;
+ end;
+
+ R : Rec(9);
+
+begin
+ R := (9, "123456789");
+ Test (R);
+end;
diff --git a/gcc/testsuite/gnat.dg/specs/pack4.ads b/gcc/testsuite/gnat.dg/specs/pack4.ads
new file mode 100644
index 00000000000..82b76d2f457
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/pack4.ads
@@ -0,0 +1,12 @@
+package Pack4 is
+
+ type Buffer is array (Natural range <>) of Boolean;
+
+ type Root (Size : Natural) is tagged record
+ Data : Buffer (1..Size);
+ end record;
+ pragma Pack (Root);
+
+ type Derived is new Root with null record;
+
+end Pack4;