aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2009-09-24 11:52:05 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2009-09-24 11:52:05 +0000
commit01c3cf4d51cfe3c30cb6e04c895f1c1be0fcd837 (patch)
tree6405d241a026c62dda06cd8642a9a574d9557a77
parent9f62cb922fdb83cd32244f3dd7b537d369557a3e (diff)
downloadgcc-01c3cf4d51cfe3c30cb6e04c895f1c1be0fcd837.zip
gcc-01c3cf4d51cfe3c30cb6e04c895f1c1be0fcd837.tar.gz
gcc-01c3cf4d51cfe3c30cb6e04c895f1c1be0fcd837.tar.bz2
* gnat.dg/nested_proc.adb: New test.
From-SVN: r152115
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gnat.dg/nested_proc.adb33
2 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0e92d05..fbce64f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2009-09-24 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/nested_proc.adb: New test.
+
2009-09-24 Jakub Jelinek <jakub@redhat.com>
* testsuite/gcc.target/i386/pr12329.c: Adjust.
diff --git a/gcc/testsuite/gnat.dg/nested_proc.adb b/gcc/testsuite/gnat.dg/nested_proc.adb
new file mode 100644
index 0000000..144533c
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/nested_proc.adb
@@ -0,0 +1,33 @@
+-- { dg-do run }
+-- Test that a static link is correctly passed to a subprogram which is
+-- indirectly called through an aggregate.
+
+procedure Nested_Proc is
+
+ I : Integer := 0;
+
+ procedure P1 (X : Integer) is
+ begin
+ I := X;
+ end;
+
+ type Func_Ptr is access procedure (X : Integer);
+
+ type Arr is array (1..64) of Integer;
+
+ type Rec is record
+ F : Func_Ptr;
+ A : Arr;
+ end record;
+
+ procedure P2 (R : Rec) is
+ begin
+ R.F (1);
+ end;
+
+begin
+ P2 ((F => P1'Access, A => (others => 0)));
+ if I /= 1 then
+ raise Program_Error;
+ end if;
+end;