aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2008-07-31 12:31:12 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2008-07-31 14:31:12 +0200
commit2f62e83f53c8775c6d9f0532cacbfe6e3f905ca5 (patch)
tree94ecb6c735f581c279621afe6f95e06a4ae7bf6a /gcc/testsuite/gnat.dg
parent01aef5ad76b8314af7406d515aa36e9e1eefa1b6 (diff)
downloadgcc-2f62e83f53c8775c6d9f0532cacbfe6e3f905ca5.zip
gcc-2f62e83f53c8775c6d9f0532cacbfe6e3f905ca5.tar.gz
gcc-2f62e83f53c8775c6d9f0532cacbfe6e3f905ca5.tar.bz2
* gnat.dg/missing_acc_check.adb: New test.
From-SVN: r138389
Diffstat (limited to 'gcc/testsuite/gnat.dg')
-rw-r--r--gcc/testsuite/gnat.dg/missing_acc_check.adb39
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/missing_acc_check.adb b/gcc/testsuite/gnat.dg/missing_acc_check.adb
new file mode 100644
index 0000000..1c2d9cf
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/missing_acc_check.adb
@@ -0,0 +1,39 @@
+-- { dg-do run }
+
+procedure Missing_Acc_Check is
+
+ Test_Failed : Exception;
+
+ type Int_Access is access all Integer;
+
+ Save : Int_Access := null;
+
+ type Int_Rec is record
+ Int : aliased Integer;
+ end record;
+
+ type Ltd_Rec (IR_Acc : access Int_Rec) is limited null record;
+
+ function Pass_Rec (IR_Acc : access Int_Rec) return Int_Access is
+ begin
+ return IR_Acc.Int'Access; -- Accessibility check here
+ end Pass_Rec;
+
+ procedure Proc is
+ IR : aliased Int_Rec;
+ LR : Ltd_Rec (IR'Access);
+ begin
+ Save := Pass_Rec (LR.IR_Acc); -- Must raise Program_Error;
+
+ if Save /= null then
+ raise Test_Failed;
+ end if;
+
+ exception
+ when Program_Error =>
+ null;
+ end Proc;
+
+begin
+ Proc;
+end Missing_Acc_Check;